[英]Backbone.js cancel Model.destroy
當我調用 Model.destroy 時,它會向服務器發送正確的請求。 但是,我處理的錯誤不是那么RESTful
,我返回 JSON 和一些適當的信息,而不是拋出 http 異常。
現在我希望能夠防止在回調中刪除 model。 例如;
window.UserView = Backbone.View.extend({
//Other stuff here.
clearSuccess: function (model, response) {
if (!response.Exception) {
$(this.el).fadeOut('fast', function() {
$(this).remove();
});
}
else {
//Can I cancel the destroy here?
}
},
clearFailed: function (model, response) {
alert("failed");
}
});
這些是我在destroy
方法上發送到模型的success
和error
參數的2 個回調。 所以我的評論在哪里,我想告訴 Backbone.js “沒關系,服務器說我不能刪除,所以保留模型”。 我該怎么做呢?
最簡單的方法可能是返回不成功的 HTTP 狀態代碼 (400-599) 和帶有 JSON 文檔的響應正文以及應用程序級錯誤詳細信息。 有關 HTTP 狀態的更多信息,請參閱此線程:
使用 HTTP 狀態碼來反映 Web 服務請求的成功/失敗?
如果你這樣做,主干應該自動知道失敗狀態意味着服務器上的銷毀沒有成功,我認為它會做正確的事情。
您可以使用 ASP.net MVC 控制內容主體。 只需將 Response.StatusCode 屬性設置為您要使用的值,然后返回 JSON 響應或內容響應,或其他任何內容。
Response.StatusCode = (int)HttpStatusCode.Conflict;
return Json( errorMessage );
工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.