当我写作时,我注意到了
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区域)
答案 0 :(得分:1)
仅当将新元素添加到集合时才会触发事件add
。如果merge=false
(默认行为)将添加新元素(可能)(并且您的集合具有两个相同的属性且不同的cid
,id
)。使用merge=true
旧元素将被更新,并且将触发事件update
。
add
事件。
update
事件。
解决方案:在update
事件上渲染区域。
答案 1 :(得分:0)
这适用于collection1.add(model1, {merge: true})
-
modelEvents: {
"change": "render"
}
// "update": "render" did not work
将^^添加到负责Marionette.ItemView
的{{1}}。