当子项更改其父项时,通知父项有多个列表

时间:2012-09-04 11:18:19

标签: ember.js ember-data

说我有关系父母(1)< - >子(0..n)和相应的模型

Zik.Node = DS.Model.extend({  
    id : DS.attr('number'),  
    name : DS.attr('string'),  
    leafs : DS.hasMany('Zik.Leaf', {key : 'leaf_ids'})  
});  
Zik.Leaf = DS.Model.extend({  
    id : DS.attr('number'),  
    name : DS.attr('string'),  
    node : DS.belongsTo('Zik.Node')  
}); 

在某个时刻,一个Zik.Node(id = 2)子Zik.Leaf改变与另一个父Zik.Node(id = 1)的关系。现在,如果Zik.Node观察它的叶子,它会得到通知,但叶子列表是相同的。

一个选项是从上一个父项中删除叶子并将其添加到新父项:

oldParent.removeObject(leaf;        
newParent.get('leafs').pushObject(leaf)

但是这似乎不对。也许还有其他一些更自动化的方法来实现这一目标。 我创造了一个小提琴http://jsfiddle.net/kristaps_petersons/6g22X/11/来说明我的观点。注释掉两行,以查看叶列表更改如何删除它们。

0 个答案:

没有答案
相关问题