我想將更改後的模型保存到數據庫(之前設置)。如果保存成功重定向到另一個頁面(例如,可以是任何其他操作)。如何使用backbone.js保存而不指定哪些屬性,但使用回調
Model.save可以有兩個可選屬性。首先是屬性的散列,第二個是選項(如成功和錯誤回調)。 http://backbonejs.org/#Model-save
somemodel.set({foo: 'bar'});
//lots of other logic and misc steps the user has to do
somemodel.save(); //on success should go here
由於屬性已設置,我只需要回調。
在過去我所做的:
somemodel.save(somemodel.toJSON(), {
success: function() {
//other stuff
}
);
或再次通過值保存方法
somemodel.save(
{ foo: this.$('input').val()},
{ success: function(){}
);
我正在尋找一種方式來清理它。這些文件表明,如果有新的屬性,模型將觸發更改狀態。但是我仍然想重定向用戶(節省新內容或舊/未改變)。
這不存在:
somemodel.on('success', function(){});
而這,僅僅是爲驗證:
if(somemodel.save()) { //action }
也 「同步」 是錯誤的情況下(因爲它同樣適用於摧毀)
有什麼幫助嗎?
謝謝,這肯定是比我有更好的。爲了不好,它仍然感覺有點髒(提供參數,只是爲了提供一個參數)。也許我應該深入研究並覆蓋/擴展Backbone.sync以回饋「成功」和「錯誤」事件。奇怪的是,它默認是這樣做的,因爲主幹與事件與回調鬆散耦合很多。 – Jareish 2012-07-31 17:31:14
{}和null在此上下文中不相同。{}意味着向服務器發送一個空對象,而null意味着你沒有傳入任何對象來保存(),並且save()應該發送對象的屬性。 – jerzy 2015-01-25 04:20:15
@jerzy這是不正確的,請檢查'model.save'上的Backbone doc:如果您未通過'patch:true'選項,則將資源的完整表示發送到服務器http://backbonejs.org/#模型保存。 {}和null將具有相同的行爲 – nikoshr 2015-01-25 12:15:02