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

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

请引用以下 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/

相关文章:

javascript - 如何检查可见 DOM 中是否存在元素?

javascript - Safari 和 Firefox 使用 Canvas 显示锯齿线

model-view-controller - Zend 框架技术

javascript - $ 不是 b.$scope.SaveUser 的函数

javascript - 在 ember 插件中管理第三方依赖项的正确方法是什么?

javascript - Ember CLI 异步初始化程序和 cordova 准备情况

ember.js - Ember-cli 插件和助手

javascript - 更漂亮 : prevent Prettier of removing parentheses

PHP MVC 404/错误 URL 的错误处理

javascript - 从硬拷贝中删除打印按钮