7

401 エラーの処理について何か考えはありますか?

アプリケーション初期化子では、準備を延期し、ember-data を介して現在のユーザーを取得しています。401 を受信すると、アプリが停止し、使用できなくなります。このエラーを処理してから、準備を進めたいと思います。これに対する回避策が見つからないようです。どんな情報でも大歓迎です!

ここの要点: https://gist.github.com/unknpwn/6126462

ここに同様のトピックがあることに気付きましたが、古くなっているようです。

4

2 に答える 2

4

前の回答は古くなっています。現在の Ember バージョン (1+) ではevents非推奨であり、(関数ではなく)actions オブジェクトを使用する必要があります。

残り火の例:

App.ApplicationRoute = Ember.Route.extend({
  actions: {
    error: function(err) {
      // error handler called in case of an error.
      // show the error message to user here
      // or transition to another route
    }
  }
});

Ember CLI の例:

import Ember from 'ember';

export default Ember.Route.extend({
  actions: {
    error: function(err) {
      // error handler called in case of an error.
      // show the error message to user here
      // or transition to another route
    }
  }
});

これらのアクション ハンドラーを使用すると、ルートでエラーを停止しなければ、エラーはメイン アプリケーション ルートに適切にバブリングされます。

于 2015-06-20T15:32:14.047 に答える
2

Application.initializerこのロジックを配置する正しい場所ではありません。modelこれは同期的であり、その目的はカスタム オブジェクトを IOC コンテナに追加するなどのことを行うことです。このコードは のフックに適していApplicationRouteます。

App.ApplicationRoute = Ember.Route.extend({
  beforeModel: function() {
    return App.User.find({ filter: "authenticated" });
  },
  setupController: function(controller, model) {
    controller.set('loggedIn', true);
    controller.set('currentUser', model);// or some property of that model
  },
  events: function() {
    error: function(err) {
      // error handler called in case of an error.
      // show the error message to user here
      // or transition to another route
    }
  }
});
于 2013-08-01T02:22:24.913 に答える