Backbone - 合并:true - 选项未更改 UI

Backbone - merge: true - option not changing UI

我注意到当我写

collection1.add(model1); --> UI 变化很好。但是,当我
collection1.add(model1, {merge: true});
然后 App.div1.currentView.collection.models 显示更改后的模型(在控制台中)但 UI 没有更改。

我不知道为什么?

(注意 1:我正在使用 Marionette.js 和 Backbone)
(注2:App是全局Marionette对象;div1是html中的Marionette区域)

事件add 只有在新元素被添加到集合中时才会触发。如果 merge=false(默认行为),将添加新元素(可能)(并且您的集合具有两个相同的属性和不同的 cidid)。使用 merge=true 将更新旧元素,并触发事件 update

add只有添加新元素才会触发事件

update 如果要添加、更改或删除元素,将触发事件。

解决方案:在 update 事件上渲染区域。

这就是 collection1.add(model1, {merge: true}) -

的作用
modelEvents: {
    "change": "render"
}

// "update": "render" did not work

将 ^^ 添加到 Marionette.ItemView,它负责 model1