为什么我的对象被添加到两个集合?
问题描述:
请参考以下小提琴: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
问:为什么被添加到都收藏我的对象!?
答
就我贴这个,我才意识到这个问题:
当我产生我的总结,我想通过所有对象环路要么集合:
var bars = foo.get('collection1').addObjects(foo.get('collection2')).uniq();
这样做的将collection2添加到collection1的参考的未实现效果,而不仅仅是结果bar
变量。通过将代码更改为此,问题得以解决:
var bars = foo.get('collection1').toArray().addObjects(foo.get('collection2')).uniq();
您确定没有错误地提供集合的原型吗?它会将值添加到两个集合中 – Sebas 2013-03-04 19:50:47