簡體   English   中英

Backbone.js 取消 Model.destroy

[英]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方法上發送到模型的successerror參數的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM