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

ale*_*can 3 backbone.js

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

我试过了:

initialize: function() {
    this.bind('change', this.save());
},
Run Code Online (Sandbox Code Playgroud)

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

dae*_*onl 21

小心使用this.save直接:

this.bind('change', this.save); 
Run Code Online (Sandbox Code Playgroud)

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

而是使用:

this.bind('change', function(){ this.save(); });
Run Code Online (Sandbox Code Playgroud)


Der*_*ley 12

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

initialize: function() {
    this.bind('change', this.save);
},
Run Code Online (Sandbox Code Playgroud)

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

  • 请将我的答案标记为已接受(大支票),好吗?:) (2认同)