0
在我们的应用程序中,我们正在将一个服务器端的对象数组传递给模型,并且数组中的每个元素都有一个键。例如...在一个烬模型中,如何引用动态对象键?
[
{name: "dog", sound: "bark", food: "cats"},
{name: "cat", sound: "meow", food: "mouse"}
]
在模型中,这被定义是这样的...
animals: hasMany(Animal, {key: 'name', embedded: true })
那么如果我们想对猫的数据,我们使用findBy功能来找到一个与名称=“猫”这样的...
var animalName = "cat";
model.get('animals').findBy('name', animalName);
这工作得很好,有很多潜在类型的“动物”对象的,我们已经知道我们要寻找的。
不过我很好奇,因为其他原因,如果我们可以通过这个从服务器,它变得看起来像这样的客户端上的JSON对象中的地图......
animals : { "dog" : {sound: "bark", food: "cat"},
"cat" : {sound: "meow", food: "mouse"}
}
看来,为了做到这一点,在模型代码中,我们需要为每个潜在的动物类型定义一个“有”关系,这是动态的,我们不想在这里硬编码所有选项。有没有办法说动物有许多动物,但是有名字的地图,而不是数组?
烬数据继承听起来像一个选项,看看这里:http://stackoverflow.com/questions/14582888/class-inheritance-in-ember-data-hasmany-associations – albertjan