Heim >Web-Frontend >js-Tutorial >Wie können Sie Dienste außerhalb von Komponenten in Angular 2 (Beta) injizieren?

Wie können Sie Dienste außerhalb von Komponenten in Angular 2 (Beta) injizieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-17 10:26:041000Durchsuche

How Can You Inject Services Outside of Components in Angular 2 (Beta)?

Service-Injection außerhalb von Komponenten in Angular 2 (Beta)

Injection über Komponenten hinaus verstehen

In Angular 2 (Beta). ) ermöglicht die Abhängigkeitsinjektion Entwicklern die nahtlose Weitergabe von Diensten innerhalb von Komponenten. Allerdings ist es oft notwendig, Dienste außerhalb von Komponentenklassen zu injizieren.

Injizieren von Diensten über @Injectable Decorator

Der Schlüssel zum Injizieren von Diensten außerhalb von Komponenten liegt in der Verwendung von @Injectable-Dekorator für die Serviceklasse. Dieser Dekorator bedeutet, dass die Konstruktorparameter der Klasse injiziert werden können.

Hierarchisches Injektionssystem

Angular 2 verwendet ein hierarchisches Injektionssystem, das dem Komponentenbaum zugeordnet ist. Injektoren für Dienste sind nicht explizit definiert; Stattdessen sind sie implizit mit Komponenten verknüpft. Durch die hierarchische Verknüpfung wird sichergestellt, dass untergeordnete Injektoren Zugriff auf Anbieter haben, die in übergeordneten Injektoren definiert sind.

Beispielanwendung und Injektorbeziehungen

Betrachten Sie die folgende Beispielanwendung mit einer AppComponent (Hauptkomponente). , ChildComponent, Service1 (verwendet von ChildComponent) und Service2 (verwendet von Service1):

<br>Application</p>
<pre class="brush:php;toolbar:false"> |

AppComponent

 |

ChildComponent
getData() --- Service1 --- Service2

Diese Anwendung verfügt über drei Injektoren: Anwendung, AppComponent und ChildComponent. Die Injektion von Service1 für ChildComponent und die Injektion von Service2 für Service1 umfassen die folgende Injektorhierarchie:

  1. ChildComponent-Injektor
  2. AppComponent-Injektor
  3. Anwendungsinjektor

Dynamische Abhängigkeitsauflösung

Injektoren lösen Abhängigkeiten dynamisch basierend auf der Injektorhierarchie auf. Fehlende Anbieter werden automatisch in übergeordneten Injektoren gesucht und kaskadiert bis zum Anwendungsinjektor.

Anbieterkonfiguration auf mehreren Ebenen

Anbieter können auf jeder Injektorebene (Anwendung) konfiguriert werden , Komponente). Dies ermöglicht eine flexible Abhängigkeitsfreigabe:

  • Anbieter auf Anwendungsebene erstellen Instanzen, die in der gesamten Anwendung gemeinsam genutzt werden.
  • Anbieter auf Komponentenebene erstellen Instanzen, die innerhalb der Komponentenstruktur und der beteiligten Dienste gemeinsam genutzt werden.

Fazit

Durch die Verwendung des @Injectable-Dekorators und das Verständnis der Injektorhierarchie können Entwickler Dienste effektiv außerhalb von Komponenten in Angular 2 (Beta) injizieren und so effizienter arbeiten Abhängigkeitsmanagement und Code-Organisation.

Das obige ist der detaillierte Inhalt vonWie können Sie Dienste außerhalb von Komponenten in Angular 2 (Beta) injizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn