假设具有以下属性的Backbone模型: - 小计 - 折扣 - 总计
每当对折扣进行更改时,总需要更新,我希望模型能够解决此问题。
我尝试将更新方法(在模型中定义)绑定到模型的更改事件(在模型的initialize方法中),这样每次更改事件时,模型都会更新total属性,但这似乎不起作用
var Cost = Backbone.Model.extend({
initialize : function() {
this.bind('change', this.update);
},
update : function() {
// UPDATE LOGIC
}
});
在触发更改事件时让模型触发(自己的)方法的最佳方法是什么?
答案 0 :(得分:9)
您是否使用模型的set
方法?当discount
发生变化时,这段代码会调用更新:
var Cost = Backbone.Model.extend({
defaults: {
subtotal: 0,
discount: 0,
total: 0
},
initialize: function () {
_.bindAll(this, "update");
this.on('change:discount', this.update);
// or, for all attributes
// this.on('change', this.update);
},
update: function () {
console.log("update : "+this.get("discount"))
}
});
var c = new Cost();
c.set({discount: 10});