0

モデルでセッション データ (ユーザーに割り当てられた companyId) を使用したい場合、ember に問題があります。私は ember-cli と ember 0.13.1 を ember-simple-auth で使用しています。ユーザーが割り当てられている会社に関する情報を表示したいときに、user/profile というルートがあるとします。そのためには、セッションからユーザーに割り当てられた companyId を取得し、モデルを使用して API を呼び出す必要があります。現在、ユーザー/プロファイルのルートは次のようになっています。

import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';

export default Ember.Route.extend(AuthenticatedRouteMixin, {
    model: function() {
        return Ember.RSVP.hash({
                industries: this.store.findAll('industry'),
                industryroles: this.store.findAll('industryrole'),
                company: this.store.find('company',this.session.get('user.companyId'))
        });
    },
    setupController: function(controller, model) {
      controller.set('industries', model.industries);
            controller.set('industryroles', model.industryroles);
      controller.set('company', model.company);
  }
});

別のルートからそのルートに移動するとすべてが機能しますが、ユーザー/プロファイルルートにいるときに F5 を押すと、 this.session.get('user.companyId') が未定義になります。

誰かがその問題を解決する方法を知っていますか?

よろしくパヴェル

4

3 に答える 3

0

session.content 設定を調べる必要があるようです (もちろん、ユーザー/プロファイル ルートで beforeModel フックをオーバーライドしない場合)。

あなたのケースで 2 段階のデータ フェッチがある場合は、ユーザー/プロファイル モデル フックでセッション データを待つ必要があり、それから初めて user.companyId を取得できます。

于 2015-08-20T12:42:02.113 に答える