请参考以下小提琴: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
问题:为什么我的对象被添加到两个集合中??
答案 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();