说我有关系父母(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/来说明我的观点。注释掉两行,以查看叶列表更改如何删除它们。