2016-04-08 8 views
7

自分のModalコンポーネントを作成しようとしています。私はAngular2 Apps全体で再利用できるでしょう。私はさまざまなアプローチを検討していますが、@Injectableとしても機能する@Componentを作成することが可能かどうか疑問に思っていますか?私はこれを考慮しています。私はモーダルのためのテンプレートを作成し、1つの場所に保管したいと思っています。注射剤としての成分は?

おかげ

答えて

6

コンポーネントはデフォルト@Component()(又は@Directive())によって注射され@Injectable()を含みます。

コンポーネントの特定のインスタンスを注入することを期待しないでください。例えば、constructor(@Host() private parentComponent)で動作します。この場合、DIルックアップはホスト要素のインジェクタまでの親インジェクタに限定されます。

通常、インスタンスではなくコンポーネントのタイプのみを受け入れるDynamicComponentLoaderが使用されます。依存性注入はコンポーネントクラスのインスタンスを作成するだけで、たとえば関連するビューは作成しません。

+0

コンストラクタに挿入することはできますか? – alegrowski

+0

答えを更新しました。私はDIを使用してあなたのユースケースの多くを購入するとは思わない。 –

+0

Gunter、私はいつもコンポーネント型のコンストラクタ注入は、それを注入しようとしているコンポーネントに対してその型の親が存在する場合にのみ機能するという印象を受けています。注入されたインスタンスは最も近い親のインスタンス(そして、これは、コンポーネントが任意にタイプされた親を注入できるようにする(非常に有用な)目的を果たすということです)。この印象は正しくないのですか? – drewmoore

関連する問題