依赖于Backbone.js模型的属性

Dependent attributes in Backbone.js model

本文关键字:属性 模型 js Backbone 依赖于      更新时间:2023-09-26

如果我的模型中的两个值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)) 

我宁愿把依赖属性c放在模型中(作为计算相当复杂,以后可能会允许使用"c"被用户覆盖。)什么是好的实践?我是否应该延长模型,创建子模型还是什么?

谢谢!

您可以在初始化调用时将模型上的绑定添加到它自己的更改事件中。

initialize: function() {
  this.bind("change", this.calculateC);
},
calculateC: function() {
  this.c = //fill in the blanks
}    

更具体地说,你只能绑定你需要的属性。

  this.bind("change:a", this.calculateC);
  this.bind("change:b", this.calculateC);