コンポーネントを超えたインジェクションを理解する
Angular 2 (ベータ版) )、依存関係の注入により、開発者はコンポーネント内でサービスをシームレスに受け渡すことができます。ただし、多くの場合、コンポーネント クラスの外側にサービスを挿入する必要があります。
@Injectable Decorator によるサービスの挿入
コンポーネントの外側にサービスを挿入する鍵は、サービスクラスの @Injectable デコレータ。このデコレーターは、クラスのコンストラクター パラメーターを注入できることを示します。
階層型注入システム
Angular 2 は、コンポーネント ツリーにマップする階層型インジェクター システムを採用しています。サービスのインジェクターは明示的に定義されていません。代わりに、それらは暗黙的にコンポーネントに関連付けられます。階層リンクにより、子インジェクターは親インジェクターで定義されたプロバイダーにアクセスできるようになります。
サンプル アプリケーションとインジェクターの関係
AppComponent (メイン コンポーネント) を含む次のサンプル アプリケーションについて考えてみましょう。 、ChildComponent、Service1 (ChildComponent によって使用される)、および Service2 (ChildComponent によって使用される) Service1):
|
|
ChildComponent
getData() --- Service1 --- Service2
動的依存関係解決
インジェクターは、インジェクター階層に基づいて依存関係を動的に解決します。不足しているプロバイダーは、親インジェクターで自動的に検索され、アプリケーション インジェクターまでカスケードされます。複数レベルでのプロバイダー構成
プロバイダーは、各インジェクター レベル (アプリケーション) で構成できます。 、 成分)。これにより、柔軟な依存関係の共有が可能になります。結論
@Injectable デコレーターとインジェクター階層を理解すると、開発者は Angular 2 (ベータ版) のコンポーネントの外部にサービスを効果的に挿入でき、より効率的な依存関係管理とコード編成が可能になります。以上がAngular 2 (ベータ版) でコンポーネントの外部にサービスを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。