请引用以下 fiddle :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();
关于javascript - 为什么我的对象被添加到两个集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15209829/