javascript - Backbone.Marionette - 以某种方式收集 "missing"一些元素

标签 javascript backbone.js marionette

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

相关文章:

javascript - 无法使 Marionette 路由器工作

具有 bool 值的 JavaScript 回调函数

javascript - 设置 css 属性的最快方法?

javascript - 为什么我的 CSS 背景颜色没有被覆盖?另外,为什么 "keypress"不起作用,而 "keydown"起作用?

javascript - 我可以将 Backbone View 组件引用到另一个组件 View 中吗

javascript - 如何使用 require Js 和 Backbone 加载动态 View css 文件

javascript - 在 Backbone 中,如何在所有 View 上使用 after_render() ?

javascript - Bootstrap 4 反馈文本无法正确呈现

javascript - Backbone.js 中的过滤模型(不是集合)

javascript - Marionette.js 2.4.1 - tagName 不起作用