我正在尝试学习 emberJS,我想一个很好的开始示例是映射 RPG 中各种元素之间的关系。每个元素都有一个名称并具有多个伤害修饰符,具体取决于它所针对的元素。例如,火对水的修正是 0.5,但对草的修正是 2.0。我认为存储这些数据的最简单方法是这样的:
Pokechoice.Type.FIXTURES = [
{
id: 1,
name: 'normal',
damages: {
'normal': '1',
'fire': '1',
'water': '1',
'grass': '1',
'electric': '1',
'ice': '1',
'fighting': '1',
'poison': '1',
'ground': '1',
'flying': '1',
'psychic': '1',
'bug': '1',
'rock': '0.5',
'ghost': '0',
'dragon': '1',
'dark': '1',
'steel': '0.5',
'fairy': '1'
}
},
{
id: 2,
name: 'fire',
damages: {
'normal': '1',
'fire': '0.5',
'water': '0.5',
'grass': '2',
'electric': '1',
'ice': '2',
'fighting': '1',
'poison': '1',
'ground': '1',
'flying': '1',
'psychic': '1',
'bug': '2',
'rock': '0.5',
'ghost': '0',
'dragon': '0.5',
'dark': '1',
'steel': '2',
'fairy': '1'
}
}
];
但是我很难为它建立一个模型。这是我到目前为止所拥有的:
Pokechoice.Type = DS.Model.extend({
name: DS.attr('string'),
damages: DS.hasMany('Pokechoice.Damage')
});
Pokechoice.Damage = DS.Model.extend({
name: DS.attr('string'),
modifier: DS.attr('number'),
type: DS.belongsTo('Pokechoice.Type')
});
显然它不起作用。理想情况下,我希望能够让每个 Type 数据对象在嵌套对象中包含其所有修饰符,如上所示,但我找不到任何以这种方式进行的教程或示例。任何帮助表示赞赏,我觉得我正在以错误的方式解决这个问题。