2011-09-18 68 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(); }); 
相關問題