Total属性とDisplayTotal属性を持つSummaryという名前のバックボーンモデルがあります。私がやりたいのは、Totalの値を複製し、それをDisplayTotalに渡すことです。
DisplayTotalのデフォルトを設定することもできますか?
defaults:{
"DisplayTotal" : this.Total,
}
可能であれば、Total属性が設定されるとすぐに、その値もDisplayTotalに設定する必要があります。
Total属性とDisplayTotal属性を持つSummaryという名前のバックボーンモデルがあります。私がやりたいのは、Totalの値を複製し、それをDisplayTotalに渡すことです。
DisplayTotalのデフォルトを設定することもできますか?
defaults:{
"DisplayTotal" : this.Total,
}
可能であれば、Total属性が設定されるとすぐに、その値もDisplayTotalに設定する必要があります。
このアプローチに反対することがいくつかあります。
defaults
クラス定義時間で解釈されますだからthis
、あなたが期待するものではないはずです、おそらくこのようなものthis
になるでしょうwindow
。
Model.get()
関数を介してアクセスされますしたがって、あなたの例は正しくありません。次のようになります。
defaults:{
"DisplayTotal" : this.get( "Total" ),
}
しかし、ポイントP.1。まだこれが機能しないようにしています。
あなたはまたあなたが望む欲求を達成するためのアプローチのリストを持っています:
DisplayTotal
化Model.initialize()
initialize: function(){
this.set( "DisplayTotal", this.get( "Total" ) );
}
DisplayTotal
初期化を実行時に遅らせるdefaults:{
"DisplayTotal" : function() { return this.get( "Total" ) }
}
非常に危険な解決策であり、おそらくそれに関してコンテキストの問題が発生するでしょうthis
。
DisplayTotal
いつでも更新Total
更新initialize: function(){
this.on( "change:Total", this.setDisplayTotal, this );
},
setDisplayTotal: function(){
this.set( "DisplayTotal", this.get( "Total" ) );
}
しかし、私はあなたがこれをS.1と組み合わせる必要があるのではないかと心配しています。change
なぜなら、イベントは属性の最初のセットでトリガーされるとは思わない。