我遇到了这个让我抓狂的问题。我有一个实体集合,命名实体接收 A 和 B 对象。下面的代码虽然看起来很简单,但并没有按照(我)的预期工作。 不知何故,最后一个添加到实体集合中的对象没有被添加。事实上,如果我打印前后的长度,我会得到类似 1, 2, 3, 4, 5, 5 而不是预期的 1, 2, 3, 4, 5, 6。 A 和 B 是实体(模型)的“子类”,因为 A 和 B 都有其相应的 View 。最后我期待 6 个可见物体,但只得到 5 个。 有谁知道问题可能是什么?提前致谢。
var that = this;
_.each( this.as.models, function( a, i ){
that.entities.add( a );
});
_.each( this.bs.models, function( b, j ){
that.entities.add( b );
});
最佳答案
当您将对象或 Backbone 模型添加到 Backbone 集合时,系统会检查该对象是否尚未存在于集合中。如果插入现有对象,则不会发生任何更改,也不会触发任何事件等。通过相等或通过匹配 id
属性,对象被视为相同。
有一种方法可以通过将 {merge: true}
选项传递给 add
方法来覆盖此设置。
关于javascript - Backbone.Marionette - 以某种方式收集 "missing"一些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15604094/