Backbone.Marionette - 集合以某种方式“遗漏”了一些元素

时间:2013-03-24 21:14:55

标签: javascript backbone.js marionette

我遇到了这个让我疯狂的问题。我有一个实体的集合,命名实体接收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 );
});

1 个答案:

答案 0 :(得分:2)

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

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