2016-08-19 4 views
0

私は複雑なアプリケーション構造内で作業しています。エラーを処理する上でより良い仕事をしようとしています。コード内にはエラーを表示する汎用エラーハンドラが定義されています。バックボーンコレクションフェッチ - カスタムエラーハンドラでオーバーライドするajaxエラーハンドラ

コレクション/モデルのフェッチを少し丁寧に失敗させて、いいエラーメッセージを表示したいと思います。何が起こっているのは、両方とも解雇されていることですが、私は何とか処理されたとしてエラーをマークして、バブルアップを続けないようにしたいと思います。

Example in jsFiddle

// generic error handler 
console.log("generic error"); 
$(document).on('ajaxError', function(event, xhr, settings) { 
    console.log("adding generic", xhr); 
    $("#errorDiv").append("<div>Generic error: " + xhr.status + " " + xhr.statusText + "</div>"); 
}); 

console.log("define collection"); 
var TestCollection = Backbone.Collection.extend({ 
    url : "http://jsfiddle.net/Kieveli/wouoxsab" 
}); 

console.log("fetch collection"); 
// fetch and provide default error 
var tests = new TestCollection(); 
tests.fetch({ 
    error: function(collection, response, options) { 
     console.log("adding custom", response); 
     $("#errorDiv").append("<div>Custom Error: " + response.status + "</div>"); 

     // How to stop generic ajaxError from firing?? 
     console.log("options", options); 
    } 
}); 

あなたが起きてから、一般的なエラーイベントを停止する方法上の任意のアイデアを持っていますか?グローバル

用途:フェッチオプションで偽を

答えて

1

典型的なファッション、私は、投稿後の答えに5分を見つけ、検索の60分で答えを見つけることができません。

Javascript: How to stop multiple jQuery ajax error handlers?

http://api.jquery.com/Ajax_Events/

https://jsfiddle.net/Kieveli/wouoxsab/6/

tests.fetch({ 
    global: false, 
    error: function(collection, response, options) { 
    console.log("adding custom", response); 
    $("#errorDiv").append("<div>Custom Error: " + response.status + "</div>"); 

    // How to stop generic ajaxError from firing?? 
    console.log("options", options); 
    } 
}); 
関連する問題