如何将this.save绑定到backbone.js模型更改事件?

时间:2011-09-18 11:39:09

标签: backbone.js

我希望我的模型每次更改都会保存到服务器。

我试过了:

initialize: function() {
    this.bind('change', this.save());
},

我是Backbone的新手,所以我愿意相信有更好的方法来实现这一目标。基本上我想避免在我的代码中的其他点调用model.save,只需每次模型更改时自动保存到服务器。

2 个答案:

答案 0 :(得分:21)

小心直接使用this.save:

this.bind('change', this.save); 

将导致随change事件发送的已更改属性被传递到save方法,这将导致第二个'change'事件被触发,因此它将被保存两次。

改为使用:

this.bind('change', function(){ this.save(); });

答案 1 :(得分:12)

你是立即调用this.save而不是作为回调函数传递它。删除this.save上的括号:

initialize: function() {
    this.bind('change', this.save);
},

并且您的模型的this.save方法将作为函数引用传入,允许在模型更改时调用它。