我注意到当我写collection1.add(model1);
-> UI更改正常。但是,当我这样做collection1.add(model1, {merge: true});
然后App.div1.currentView.collection.models
显示更改的模型(在控制台中),但UI不变。
我不知道为什么?
(注1:我将Marionette.js与Backbone一起使用)
(注2:App是全局木偶对象; div1是html中的木偶区域)
最佳答案
仅当将新元素添加到集合时才触发事件add
。如果merge=false
(默认行为),将添加(可能)新元素(并且您的集合具有两个相同的属性和不同的cid
,id
)。使用merge=true
,将更新旧元素,并触发事件update
。
仅当添加新元素时,才会触发add
事件。
如果添加,更改或删除元素,将触发update
事件。
解决方案:在update
事件上渲染区域。