2013-02-19 26 views
1

My Model在服務器上正確保留,客戶端上的下列代碼段也會收到響應文本「success」。但是,每次我的error回調被執行而不是success覆蓋model.save()的成功條件

myModel.save({}, 
{ 
success: function(model, response) { 
    console.log('SUCCESS:'); 
    console.log(response); 
}, 
error: function(model, response) { 
    console.log('FAIL:'); 
    console.log(response); 
} 
}); 

骨幹文檔指定成功觸發只有堅持在服務器上的對象的JSON表示返回到客戶端。

但我不能改變服務器端的實現。所以,我怎麼能觸發成功回調上得到responseText的是「成功」和錯誤的model.save()

回答

1

有兩種方法來解決這個任何其他迴應:

  • 繼承骨幹示範

您可以創建自己的自定義模型,該模型從骨幹模型繼承。在其中您可以覆蓋保存方法。 Read Backbone docs on how to extend their model

在您的自定義保存方法中,您將調用超級保存方法,檢查responseText,如果成功,您將調用成功回調。 (請不要閱讀如何調用Javascript中父模型的方法骨幹文檔)

  • 覆蓋Backbone.Sync

骨幹具有同步模塊,基本上在默認情況下使所有的Ajax請求,解析然後調用您在模型上調用保存時指定的成功/錯誤回調。這很簡單。 Take a look at this doc。同樣你可以重寫這個,做Backbone默認做的事情,但只根據你收到的responseText調用成功/錯誤回調。