我希望我的模型每次更改都会保存到服务器。
我试过了:
initialize: function() {
this.bind('change', this.save());
},
我是Backbone的新手,所以我愿意相信有更好的方法来实现这一目标。基本上我想避免在我的代码中的其他点调用model.save,只需每次模型更改时自动保存到服务器。
答案 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
方法将作为函数引用传入,允许在模型更改时调用它。