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> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><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:
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:
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!