2

我遇到了这个让我发疯的问题。我有一个实体集合,命名实体接收 A 和 B 对象。下面的代码虽然看起来很简单,但不能像 (I) 预期的那样工作。不知何故,没有添加最后一个添加到实体集合中的对象。事实上,如果我在得到 1、2、3、4、5、5 而不是预期的 1、2、3、4、5、6 之前和之后打印长度。A 和 B 是实体的“子类”这是一个模型,因为 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 );
});
4

1 回答 1

2

当您将对象或 Backbone 模型添加到 Backbone 集合时,会检查该对象是否已存在于集合中。如果插入现有对象,则不会更改任何内容,不会触发任何事件,依此类推。通过相等或匹配id属性,一个对象被认为是相同的。

有一种方法可以通过将{merge: true}选项传递给方法来覆盖它add

于 2013-03-24T21:44:52.793 回答