非常有趣的情况!
以下代码表示订单输入。在保存之前用户应该计算订单总计他点击 #calTTotal 按钮然后点击 #saveOrder 按钮。
问题是如果用户只启动 saveOrder 功能一次,那么 calcTotal 函数中的ajax方法将始终调用 model.save 在 saveOrder 功能!
我认为 this.model.save 函数会覆盖一些Backbone模型函数,因此任何ajax请求都会执行 model.save 中的任何操作。
我应该如何防止这种行为?
events: {
'click #calcTotal': 'calcTotal',
'click #saveOrder': 'saveOrder'
},
calcTotal: function() {
this.model.set( $('form').serializeJSON() );
var that = this;
$.ajax({
url: 'api/order/calcTotal',
type: 'GET',
data: this.model.toJSON(),
dataType: 'json',
success: function( result ) {
that.model.set({
'total': result.total
});
that.renderTotal();
}
});
},
saveOrder: function() {
var that = this;
this.model.save({
success: function() {
console.log('CHECK');
}
});
},