我正试图了解Ember Data模型并试图将使用store.findAll()
找到的对象集合分配给ember数据模型的hasMany
关系时遇到问题。
我定义了两个模型:
App.Leaf = DS.Model.extend({
text: DS.attr('string'),
branch: DS.belongsTo('App.Branch')
});
App.Branch = DS.Model.extend({
lotsOfLeaves: DS.hasMany('App.Leaf')
});
如果我将关系指定为createRecord()
App.store.loadMany(App.Leaf,[
{ id: 1, text: "Hello, I'm leaf 1", branch_id: 1 },
{ id: 2, text: "Hello, I'm leaf 2", branch_id: 1 }
]);
var allLeaves = App.store.findAll(App.Leaf);
var oneBranch = App.Branch.createRecord({ id: 1, lotsOfLeaves: allLeaves });
然后它失败(默默地),因为oneBranch.get('lotsOfLeaves.length')
是0
。
同样,如果我在关联后分配关系,它会无声地失败:
var all = App.store.findAll(App.Leaf);
oneBranch.set('lotsOfLeaves', all);
我了解我可以pushObject()
使用oneBranch.get('lotsOfLeaves')
来单独添加每个叶子,但这是唯一的方法吗?
答案 0 :(得分:4)
MutableArray类还定义了一个pushObjects()方法,您应该可以使用它同时添加所有这些方法。
文档在这里:http://docs.emberjs.com/symbols/Ember.MutableArray.html#method=pushObjects