Injizieren von Services in andere Services in Angular 2 (Beta)
Das Injizieren von Services in Komponenten ist mit dem @Component Decorator unkompliziert. Das Einfügen von Diensten außerhalb von Komponenten stellt jedoch eine Herausforderung dar.
Problemstellung
In Angular 2 möchten wir die manuelle Instanziierung von Diensten innerhalb anderer Dienste vermeiden, wie in der zu sehen ist Folgender Codeausschnitt:
export class MyFirstSvc { } export class MySecondSvc { constructor() { this.helpfulService = new MyFirstSvc(); } } export class MyThirdSvc { constructor() { this.helpfulService = new MyFirstSvc(); } }
Lösung
Die Lösung beinhaltet die Verwendung des @Injectable-Dekorators für die Dienste, die wir injizieren möchten. Dieser Dekorator bereitet die Konstruktorparameter des Dienstes für die Abhängigkeitsinjektion vor.
Injektorhierarchie
Um zu verstehen, wie die Injektion funktioniert, ist es wichtig, das Konzept der Injektorhierarchie zu verstehen:
Beim Einfügen eines Dienstes in eine Komponente oder einen anderen Dienst sucht Angular2 in der folgenden Reihenfolge nach dem Anbieter:
Provider Sharing
Die Injector-Hierarchie ermöglicht die kontrollierte gemeinsame Nutzung von Dienstinstanzen :
Beispiel
@Injectable() export class Service1 { constructor(service2:Service2) { this.service2 = service2; } getData() { return this.service2.getData(); } }
@Injectable() export class Service2 { getData() { return [{ message: 'message1' }, { message: 'message2' }]; } }
In diesem Beispiel:
Ressourcen
Das obige ist der detaillierte Inhalt vonWie kann ich Dienste in andere Dienste in Angular 2 einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!