0

我正在尝试学习 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 数据对象在嵌套对象中包含其所有修饰符,如上所示,但我找不到任何以这种方式进行的教程或示例。任何帮助表示赞赏,我觉得我正在以错误的方式解决这个问题。

4

1 回答 1

1

学习 ember 的快速提示

解决方案/工作示例

http://emberjs.jsbin.com/afojaZU/2/edit

希望这可以帮助!

我在 SO 上做出的第一个大(时间投入)答案之一 :)

于 2014-01-12T12:51:38.147 回答