2

この記事に基づいて認証を実装しました

したがってApp.Session、アプリケーションの初期化時にオブジェクトを作成します。

    Ember.Application.initializer({
      name: 'session',

      initialize: function (container, application) {
        App.Session = Ember.Object.extend({
          init: function () {
            this._super();
            this.set('authToken', $.cookie('auth_token'));
            this.set('authAccountId', $.cookie('auth_accountId'));
            this.set('authAccountLanguage', $.cookie('auth_accountLanguage'));
          },

          authAccountIdChanged: function () {
            var authAccountId = this.get('authAccountId');
            $.cookie('auth_accountId', authAccountId);

            //Load the actual account record from the server if the authAccountId is set 
            //Used to have for example the full name or other properties of the account
            if (!Ember.isEmpty(authAccountId)) { 
              this.set('authAccount', this.store.find('account', authAccountId));
            }
          }.observes('authAccountId'),
...

にオブザーバーがいauthAccountIdます。accountIdしたがって、 (ログインしたユーザーの)が変更されるたびにid、そのユーザーのすべての詳細(フルネーム、設定など)を取得したいと考えています。

Ember データ バージョン 1.0.0 より前は、以下を使用していました。

this.set('authAccount', App.Account.find(authAccountId));

そして、これはうまくいきました。今私は使用します:this.set('authAccount', this.store.find('account', authAccountId));

エラーが表示されます: Uncaught TypeError: Cannot call method 'find' of undefined。デバッガーでthis.get('store')も未定義になります。ではお店が空いていない印象ですApplication.initializer。誰かがこの問題の解決を手伝ってくれますか?

4

1 に答える 1