为什么我的对象被添加到两个集合中?

时间:2013-03-04 19:45:54

标签: javascript model-view-controller ember.js javascript-framework ember-data

请参考以下小提琴:http://jsfiddle.net/VkKX2/138/(确保您的控制台已打开)

TL; DR; 我有2个hasMany集合,当我将一个新模型添加到一个集合时,它也会被添加到另一个集合中。

SO需要代码,所以这里是一个非常高级的摘要:

var foo = App.FooModel.find(101);
var bar = App.BarModel.find(204);

foo.get('collection2').addObject( bar );
foo.get('collection1').contains( bar ); // yields true

问题:为什么我的对象被添加到两个集合中??

1 个答案:

答案 0 :(得分:0)

只是,因为我发布了这个,我意识到了问题:

当我生成摘要时,我想循环遍历 集合中的所有对象:

var bars = foo.get('collection1').addObjects( foo.get( 'collection2' )).uniq();

这具有将collection2添加到collection1的引用而不仅仅是生成的bar变量的未实现效果。通过将代码更改为此,问题得以解决:

var bars = foo.get('collection1').toArray().addObjects( foo.get( 'collection2' )).uniq();