サーバーがエラーを返した場合に備えて、バックボーンの ajax 成功メソッド内に独自のカスタム エラー コードがあります。問題は、このコードがアプリ全体で繰り返され、成功関数を 1 か所で編集したかったため、ajax の成功ごとにこのエラー ハンドラーを常に繰り返す必要がないことです。成功関数を編集して、このエラー チェック ラッパーを含めたいと考えています。その方法を知っていますか?
以下は、私の見解の 1 つである成功方法の例です。
"success" : function success(model, data)
{
if(data['error'] !== undefined && data['error'].length === 0)
{
message('error', 'Whoops! System Error. Please refresh your page.');
}
else if(data['error'] !== undefined)
{
message('error', data['error']);
}
else
{
//add templates and do stuff here
}
},
理想的には、どこかの構成でそれを設定したいと思います。そうすれば、次を使用できるようになります。
"success" : function success(model, data)
{
// add templates and do stuff here
}
これは可能ですか?ajaxSetup を使用してみましたが、うまくいかなかったようです。
更新されたコードがまだ機能しない:
それは私をもう少し先に進めますが、エラーハンドラーはラッパーとして機能していません. データが ajax 呼び出しに渡されていません。実際、私の ajax 呼び出しの成功メソッドはまったく実行されていません。ajax 呼び出しで console.log("some text") を試しましたが、何も出力されません。これの何が悪いのか知っていますか?
// Save the original Sync method
defaultSync = Backbone.sync;
//Over ride Backbone async
Backbone.sync = function(method,
model,
options)
{
success = options.success
options.success = function(data)
{
if(data['error'] !== undefined && data['error'].length === 0)
{
message('error', 'Whoops! System Error. Please refresh your page.');
}
else if(data['error'] !== undefined)
{
message('error', data['error']);
}
else
{
success(model,
data);
}
}
return defaultSync(method,
model,
options)
}