Javascript Backbone.js模型中的依赖属性

Javascript Backbone.js模型中的依赖属性,javascript,model-view-controller,backbone.js,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)) 我宁愿将依赖属性c放在模型中(作为 计算相当复杂,以后可能会允许使

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

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

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);

但是,在模型更改事件之前,是否不计算C?因此,视图将无法访问c的最新值。或者,您的意思是,模型可以在以某种方式触发更改事件之前计算出这一点?谢谢。上面的方法似乎有效:)但我不明白在查看之前模型是如何得到通知的?(而且:如果我想将“c”设置为模型的属性并为其触发更改事件,我该怎么办?)谢谢!您首先获得事件,因为您是第一个将更改事件挂接到自己身上的人。Initialize在构造函数中被调用,所以您知道自己是第一个挂接它的人…谢谢!跟进:1)如果a和b都改变了,有什么好方法可以防止c被计算两次?2) 如果c是一个模型属性,我可以让它与a&b一起触发一个变更事件吗?但是,在模型变更事件之前,c不会被计算出来吗?因此,视图将无法访问c的最新值。或者,您的意思是,模型可以在以某种方式触发更改事件之前计算出这一点?谢谢。上面的方法似乎有效:)但我不明白在查看之前模型是如何得到通知的?(而且:如果我想将“c”设置为模型的属性并为其触发更改事件,我该怎么办?)谢谢!您首先获得事件,因为您是第一个将更改事件挂接到自己身上的人。Initialize在构造函数中被调用,所以您知道自己是第一个挂接它的人…谢谢!跟进:1)如果a和b都改变了,有什么好方法可以防止c被计算两次?2) 如果c是一个模型属性,我能让它和a&b一起触发一个变更事件吗?