Angular 2 でのサービス インジェクション: 包括的なガイド
コンポーネントへのサービスのインジェクションは、Angular 2 の基本的なタスクです。しかし、疑問が生じます。 : コンポーネントの外にある他のサービスにサービスを挿入するにはどうすればよいでしょうか?これを達成する効果的な方法を見てみましょう。
サービスにサービスを注入するには、注入対象の各サービスで @Injectable デコレータを使用する必要があります。このデコレーターを使用すると、現在の実行チェーンのインジェクターで対応する型インスタンスの作成または取得が可能になります。
Angular 2 アプリケーションは、インジェクターの階層ツリーを採用しており、各インジェクターは特定のコンポーネントにリンクされています。 @Injectable デコレーターがクラスに適用されると、Angular 2 はインジェクター ツリーでクラスのインスタンスを作成またはフェッチしようとします。
次のアプリケーション構造を考えてみましょう:
に注入されるサービス このシナリオでは、ChildComponent が初期化され、Angular 2 が位置を特定しますChildComponent インジェクター内の Service1、次に AppComponent インジェクター、その後アプリケーション インジェクター内です。
同様に、Service1 の場合 は Service2 を注入しようとしますが、同じですインジェクター検索プロセスが発生します。したがって、必要な共有スコープに基づいて、アプリケーションのさまざまなレベルでサービスを挿入できます。
プロバイダーがアプリケーション レベルで定義されている場合、作成されたインスタンスは、すべてのコンポーネントとサービスを含むアプリケーション全体で共有されます。コンポーネント レベルでプロバイダーを定義することにより、インスタンスはコンポーネント自体、そのサブコンポーネント、および依存関係チェーンに関係するサービスに制限されます。
この階層型注入メカニズムにより、依存関係の編成と管理に柔軟性が提供されます。より包括的な理解については、階層依存関係の注入に関する Angular 2 ドキュメントを参照してください。
以上がAngular 2 で他のサービスにサービスを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。