Angular 2 bedingt Dienst in Komponente injizieren

8

Beispiel:

Ich habe 2 Dienste

1) one.service.ts

2) two.service.ts

Und ich habe eine Komponente - dashboard.component.ts

%Vor%     
Ajey 17.04.2017, 11:08
quelle

1 Antwort

9

Sie können Injector

verwenden %Vor%

Wie @MeirionHughes erwähnt, wird dies als Service-Locator-Muster bezeichnet:

  

Die Technik ist ein Beispiel für das Service-Locator-Muster.

     

Vermeide diese Technik, es sei denn, du brauchst sie wirklich. Es fördert eine unvorsichtige Ergreifung, wie Sie es hier sehen. Es ist schwierig zu erklären, zu verstehen und zu testen. Sie können nicht wissen, indem Sie den Konstruktor prüfen, was diese Klasse erfordert oder was sie tun wird. Es könnte Dienste von einer beliebigen Vorgängerkomponente beziehen, nicht nur von seiner eigenen. Sie sind gezwungen, die Implementierung zu durchsuchen, um herauszufinden, was sie tut.

     

Framework-Entwickler können diesen Ansatz wählen, wenn sie Dienste generisch und dynamisch erwerben müssen.

Quelle: Ссылка

Und wie bereits erwähnt, können Sie diese Injektoren in einem anderen Service bekommen und dann diesen Service in Ihre Komponente injizieren.

    
echonax 17.04.2017 11:12
quelle