2011-09-18 50 views
3

我希望我的模型在每次更改时保存到服务器。如何将this.save绑定到backbone.js模型更改事件?

我曾尝试:

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

我是新来的骨干,所以我愿意相信有更好的方式来实现这一目标。基本上我希望避免在代码中的其他位置调用model.save,只需在模型更改时自动保存到服务器。

回答

12

您呼叫this.save立即,而不是将其通过作为回调function.remove括号上this.save

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

和模型的this.save方法将被传入一个函数参考,允许它在模型改变时被调用。

+0

谢谢德里克,问题就迎刃而解了。 – alexduncan

+2

请将我的回答标记为已接受(大支票)? :) –

21

小心使用this.save直接:

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

将导致更改的属性与所述改变事件发送到被传递到保存方法,这将导致第二“变化”事件被烧成,所以它会被保存两次。

而是使用:

this.bind('change', function(){ this.save(); }); 
相关问题