Backbone.js 将一个属性传递给同一主干模型上的另一个属性

Backbone.js 将一个属性传递给同一主干模型上的另一个属性,backbone.js,Backbone.js,我有一个名为Summary的主干模型,它有属性Total和DisplayTotal。我想做的只是复制Total的值并将其传递给DisplayTotal 还可以为DisplayTotal设置默认值吗 defaults:{ "DisplayTotal" : this.Total, } 如果可能的话,一旦设置了Total属性,它也应该将其值设置为DisplayTotal。有几件事反对这种方法 第1页默认值在类定义时解释 所以这个不应该是你期望的,可能这个会是窗口或者类似的东西 第2页。主干属

我有一个名为Summary的主干模型,它有属性Total和DisplayTotal。我想做的只是复制Total的值并将其传递给DisplayTotal

还可以为DisplayTotal设置默认值吗

defaults:{
    "DisplayTotal" : this.Total,
}

如果可能的话,一旦设置了Total属性,它也应该将其值设置为DisplayTotal。

有几件事反对这种方法

第1页<代码>默认值在类定义时解释 所以
这个
不应该是你期望的,可能
这个
会是
窗口
或者类似的东西

第2页。主干属性是通过
Model.get()函数访问的
因此,您的示例不正确,应该是这样的:

defaults:{
  "DisplayTotal" : this.get( "Total" ),
}
但第1点仍然使这一点不起作用

您还有一个实现您想要的目标的方法列表:

S.1。初始化
Model.Initialize()
S.2。将
DisplayTotal
初始化延迟到运行时 非常危险的解决方案,而且您可能会遇到该
的上下文问题

S.3。更新
displaytoal
随时更新
Total
但是我很惊讶您应该将此事件与S.1结合起来。因为我认为事件
更改
不会在第一组属性中触发

initialize: function(){
  this.set( "DisplayTotal", this.get( "Total" ) );
}
defaults:{
  "DisplayTotal" : function() { return this.get( "Total" ) }
}
initialize: function(){
  this.on( "change:Total", this.setDisplayTotal, this );
},

setDisplayTotal: function(){
  this.set( "DisplayTotal", this.get( "Total" ) );
}