0

構築中のアプリケーションの認証を処理するために、ember-simple-auth を追加しています。現在 ApplicationRoute で、モデルを使用してサイドバー コンテンツをロードしています。

一部のデータは、認証トークンとともに返されるユーザー URL プロパティに依存しています。

認証済みユーザーのデータのロードを処理するためにコードをリファクタリングしていますが、サイドバー データをロードするためのモデル呼び出しをどこに配置すればよいかわかりません。

isAuthenticated プロパティにオブザーバーを追加して、モデルの読み込みをトリガーするか、現在のルートを取得して、モデルの読み込みを担当するリソースにラップすることは理にかなっていると思いますか?

応募ルート

App.ApplicationRoute = Ember.Route.extend(Ember.SimpleAuth.ApplicationRouteMixin,
{
    model: function()
    {
        return Ember.RSVP.hash(
        {
            collections: Ember.$.getJSON(this.session.get('user.url') + '/collection'),

            libraries: Ember.$.getJSON(ENV.api + '/library')
        });
    },


    setupController: function(controller, model)
    {
        controller.set('libraries', model.libraries);

        controller.set('collections', model.collections);
    }
});

ルート マッピング

App.Router.map(function()
{
    this.route('login');

    // Authenticated Routes

    this.route('my-account');

    this.route('collection', { path: '/collection/:id' });

    this.route('item.new', { path: '/item/new' });

    this.route('item.edit', { path: '/item/:id' });

    this.route('library', { path: '/:slug' });
});
4

2 に答える 2

0

は、セッション状態が非認証から認証済みに変わるたびに呼び出されるアクションApplicationRouteMixinを定義します。セッションのイベントを聞くこともできますsessionAuthenticationSucceededsessionAuthenticationSucceeded

于 2014-06-12T11:28:21.310 に答える