2016-09-09 11 views
0

私は店とルータの両方が必要なemberコンポーネントを持っています。私はEmber.inject.serviceを使ってそれらを注入しようとしています。ストアを注入すると機能しますが、ルータは注入しません。Emberの依存関係の注入がEmber 1.11のルータで動作しない

import Ember from 'ember'; 

const MyComponent = Ember.Component.extend({ 
    store: Ember.inject.service('store'), 
    routing: Ember.inject.service('-routing'), 

    classNames: ['my-component'], 
    schema: Ember.computed('store', 'routing', function schema() { 

    // This works. Shows up when I log it. 
    const store = this.get('store'); 

    // This doesn't 
    const routing = this.get('routing'); 

    // return schema from store. This works. 
    }), 
}); 

export default MyComponent 

私はEmberバージョン1.11.3です。何か不足していますか?

+0

パッケージにこれがあるかどうか確認しましたか? 'ember-routing/lib/services/routing.js'ファイルを見逃しているかもしれません。また、何かエラーがありますか?そして、例えばイニシャライザから注入を試みましたか? – reillyethan

+0

@reillyethan:どのようなパッケージ? emberビルド自体に?エラーはありません。私は現在、コンポーネントの初期化を行っています。 – BarFooBar

+0

私は、ルーティングサービスが正しくインストールされていないと思われるかもしれませんが、意味がありません。まあ、私はなぜそれが動作しないのか分からない。 Docsによると、このサービスはプライベートだが開かれるという。私は彼らが何を意味しているのかわからない、あなたはコメントを見ることができた[ここ](https://github.com/emberjs/ember.js/blob/v2.7.0/packages/ember-routing/lib/services/ routing.js#L13)おそらく店舗や店舗として開かれていないかもしれません – reillyethan

答えて

0

私はエンバー1.13についてはよく分からないが、私のエンバー2.xのアプリで、私はあなたが上記のようにルータを注入し、次のように移行することができます。

this.get('routing.router').transitionTo('routeName', model, { 
     queryParams: { 
     queryName: queryValue 
     } 
    }); 

PS:これは一般的に考えられていますトランジションの処理を担当するようにするのではなく、ルートクロージャを処理するコンポーネントにアクションクロージャを渡すことをお勧めします。

関連する問題