dan*_*ani 0 javascript model-view-controller backbone.js
如果我的模型中的两个值(a或b)中的任何一个发生变化,则两个监听视图需要计算第三个值c.
//Pseudo
mainModel
a : 2000
b : 3000
view1
helper.calculateC(this.model.get(a), this.model.get(b))
view2
helper.calculateC(this.model.get(a), this.model.get(b))
Run Code Online (Sandbox Code Playgroud)
我宁愿将依赖属性c放在模型中(因为计算相当复杂,以后可能会允许"c"被用户覆盖.)什么是好的做法?我应该扩展模型,制作一个子模型还是什么?
谢谢!
您可以在初始化调用上将模型上的绑定添加到其自己的更改事件中.
initialize: function() {
this.bind("change", this.calculateC);
},
calculateC: function() {
this.c = //fill in the blanks
}
Run Code Online (Sandbox Code Playgroud)
更具体地说,您只能绑定所需的属性.
this.bind("change:a", this.calculateC);
this.bind("change:b", this.calculateC);
Run Code Online (Sandbox Code Playgroud)