200 以外の値を取得した場合、サーバーからの ember-data の現在のデフォルトの予期される応答は何ですか?
例 {"エラー":{jsonerror}} ???
Ember でサーバーエラー応答 (json 形式) を処理するにはどうすればよいですか?
ありがとう!
200 以外の値を取得した場合、サーバーからの ember-data の現在のデフォルトの予期される応答は何ですか?
例 {"エラー":{jsonerror}} ???
Ember でサーバーエラー応答 (json 形式) を処理するにはどうすればよいですか?
ありがとう!
@coymba はほぼ正しいと思いますが、より簡単に起動して実行できるように、より精巧な回答を作成しようと思います。
新しいルーターのフェイスリフトですでに述べたように、ルートに遷移しようとすると、いずれかのフックがbeforeModel
エラーをスローするか、拒否する promise を返す可能性があります。この場合、部分的に入力されたルートでイベントが発生します。 、ルートごとにエラーを処理できます。model
afterModel
error
App.SomeRoute = Ember.Route.extend({
model: function() {
//assuming the model hook rejects due to an error from your backend
},
events: {
// then this hook will be fired with the error and most importantly a Transition
// object which you can use to retry the transition after you handled the error
error: function(error, transition) {
// handle the error
console.log(error.message);
// retry the transition
transition.retry();
}
});
アプリケーション全体でエラーを処理したい場合は、 のハンドラーerror
をオーバーライドして独自のグローバル デフォルト ハンドラーを定義できます。これは次のようになります。error
ApplicationRoute
App.ApplicationRoute = Ember.Route.extend({
events: {
error: function(error, transition) {
// handle the error
console.log(error.message);
}
}
});
events
デフォルトでは、ハッシュで定義されたハンドラーがイベントを処理すると、イベントのバブリングが停止することを考慮してください。ただし、 までイベントをバブリングし続けるには、そのハンドラーからApplicationRoute
戻る必要があります。これtrue
により、より多くのハンドラーに通知することがerror
でき、そこから でルートへの移行を再試行できますtransition.retry()
。
新しい ember リリース 1.0 以降、events
ハッシュの名前が に変更されましたactions
。ルートのエラー ハンドラーはactions
ハッシュに含まれている必要があります。
App.ApplicationRoute = Ember.Route.extend({
actions: {
error: function(error, transition) {
// handle the error
console.log(error.message);
}
}
});
これがお役に立てば幸いです。