我遇到了这个让我疯狂的问题。我有一个实体的集合,命名实体接收A和B对象。以下代码尽管看起来很简单但不能像(I)那样工作。 不知何故,没有添加添加到实体集合的最后一个对象。事实上,如果我在获得1,2,3,4,5,5之类的东西之前和之后打印长度,而不是预期的1,2,3,4,5,6。 A和B是Entity的“子类”,它是一个模型,A和B都有它们对应的视图。最后我期待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 );
});
答案 0 :(得分:2)
当您将对象或Backbone模型添加到Backbone集合时,将检查该对象是否已存在于集合中。如果插入现有对象,则不会更改任何内容,也不会触发任何事件,依此类推。通过相等或匹配id
属性,对象被认为是相同的。
有一种方法可以通过将{merge: true}
选项传递给add
方法来覆盖此方法。