0

私は Ember CLI を使用しており、Simple Auth Addon を正常に統合しました。sessionAuthenticationFailed残念ながら、現在、プロジェクトのApplicationRouteトリガーでアクションを取得できないように見えるという問題に直面しています。私はすでにブラウザ化されたバージョンの Ember Simple Auth でこれを成功させましたが、今すぐ Ember CLI のアドオンを使用して、これを理解したいと思っています! 現時点ではApplicationRoute、Coffescript で次のように表示されます。

`import Ember from 'ember'`
`import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin'`
`import Session from 'simple-auth/session'`

ApplicationRoute = Ember.Route.extend ApplicationRouteMixin,
  actions:
    sessionAuthenticationFailed: (error) ->
      debugger

`export default ApplicationRoute`

また、ApplicationRouteMixin を再度開いてdebugger関数に a を設定しようとしましたが、これも機能しませんでした。Ember Simple Auth のソースコードをたどることができる限り、その関数Sessionを呼び出すことでイベントをトリガーします。また、動作中のバージョンと現在動作していないバージョンを比較しました。トリガーが呼び出された後にコードをステップ実行すると、オブジェクトを受け取る関数になります。この場合は Ember Simple Auth 、 eventName です、パラメーター、およびアクション。ここで興味深いのは、リスナーに関する一部のメタデータが、コードの次の部分でセッションから読み取られることです。_this.trigger('sessionAuthenticationFailed', error)authenticatesendEventSession

var meta = obj[META_KEY];
actions = meta && meta.listeners && meta.listeners[eventName];

私の場合、イベントにリスナーがいないことを意味しているmeta.listeners[eventName]ため、何も呼び出されず、アクションでイベントをキャッチできません。undefinedsessionAuthenticationFailed

もちろん、大きな問題は、このイベントにリスナーが登録されていないように見える理由です。Ember CLI Simple Auth Addon を既に使用していて、sessionAuthenticationFailedイベントを正常にフックした人はいますか? もしそうなら、助けていただければ幸いです!

乾杯、デイブ!

編集 ソースのコメントを読むと、拡張する ApplicationRoute で beforeModel フックが使用されている場合、親の beforeModel 関数を this._super() で呼び出す必要があることがわかりました。これで解決に一歩近づいたと思います!

4

1 に答える 1

1

わかりました、私はこれを解決しました。beforeModel(transition)そのため、翻訳をロードするためにフックを実装しましApplicationRouteたが、で親関数を呼び出しませんでしたthis._super(transition)。私が説明したのと同じ問題を抱えている場合、これが機能しない理由の 1 つになる可能性があります。

于 2014-07-06T18:49:39.127 に答える