我使用 Backbone 创建了以下结构。每个视图都监听相同的模型。每个视图都可以更新它。如何避免导致模型更新的视图的渲染方法调用?
var MyView1 = Backbone.View({
initialize: function() {
this.listenTo(this.model, 'change', this.render)
},
events: {
'click' : 'set'
},
render: function() {
return this
},
set: function (){
this.model.set('property1', 'value')
}
})
var MyView2 = Backbone.View({
initialize: function() {
this.listenTo(this.model, 'change', this.render)
},
events: {
'click' : 'set'
},
render: function() {
return this
},
set: function (){
this.model.set('property1', 'value')
}
})
var model = new Backbone.Model
var view1 = new MyView1({model: model})
var view2 = new MyView2({model: model})
我预计:
点击 view1 -> model.set() -> 只有 view2 的渲染方法应该被调用
根据我的 WinForms 经验,我现在将视图的 cid 作为发送者传递选项并在渲染时检查它,但它看起来有点难看。