2016-07-08 2 views
0

私はember-cliプロジェクトを開発しています。ここでは、再利用可能なコンポーネントをたくさん作成しました。私はすべてのテンプレート(hbs)ファイルにこれらのコンポーネントが必要です。私は各テンプレートに{{component1}} {{component2}} {{component3}}を書くことができます。私が知りたいのは、サービスがルートやコンポーネントなどに注入されるような、すべてのテンプレートにコンポーネントを挿入できるかどうかだけです。私はサービスを注入する方法のember.jsのアプリケーション全体にコンポーネントを挿入する方法

例Iは、上記と同様のようにテンプレートの中に成分を注入する試み

/intializers/session-object.js 
export function intialize (application){ 
     application.inject('route','session','service:session'); 
     application.inject('controller','session','service:session'); 
     application.inject('component','session','service:session'); 
     application.inject('adapter','session','service:session'); 
}); 

未満です。

/intializers/session-object.js 
export function intialize (application){ 
     application.inject('template','my-component','component:my-component');   
}); 

期待どおり、上記のコードは失敗します。私はテンプレートにコンポーネントを挿入できると指摘されています。しかし、以前誰かがこれをしたかどうかを知りたがっていました。

私は、emberがテンプレートにコンポーネントを挿入することができないという強い理由があると思います。

これがember.jsで実装できない理由を説明する助けとなることは素晴らしいことです。実装が可能であれば、解決策を提供することは素晴らしいことです。先輩に感謝します。

+0

? – Lux

答えて

1

テンプレートに注入することは意味がありません。

部分テンプレートを作成し、そこに共通のコンポーネントを配置してその部分を使用することができます。

-common.hbs

{{nav-bar}} 
{{error-messages}} 

another.hbs application.hbsを使用しないのはなぜ

{{partial 'path-to-common-template'}} 
+0

ありがとう@Ebrahim。すべてのテンプレートでコードを繰り返したくないので、これは私にとってはうまくいくでしょう。 –

+0

@nagarjuna喜んで助けてください。あなたの問題が解決されたら、私の答えを親切に受け入れてください。 –

関連する問題