Was ist multiprovider in angular2

12

Ich verstehe, dass der Provider Service von einer anderen Klasse bekommt, aber was ist Multi-Provider und Token Sache?

Und auch wenn wir multi=true machen?

%Vor%     
blackHawk 01.07.2016, 11:45
quelle

3 Antworten

13

multi: true bedeutet, dass ein Anbieter-Token ein Array von Elementen bereitstellt. Beispielsweise werden alle Anweisungen für die Router-Unterstützung routerLink , router-outlet von ROUTER_DIRECTIVES bereitgestellt.
Wenn ein neuer Provider mit dem Token ROUTER_DIRECTIVES registriert wird, überschreibt er die zuvor registrierten Anweisungen. Wenn multi: true (auf dem ersten registrierten und der neue Provider) festgelegt ist, werden die neuen Direktiven zu den zuvor registrierten Direktiven hinzugefügt, anstatt sie zu überschreiben.

Wenn ROUTER_DIRECTIVES injiziert wird ( constructor(@Inject(ROUTER_DIRECTIVES) directives) {} ) wird ein Array von Direktiveninstanzen eingefügt. Normalerweise ist es nicht sinnvoll, ROUTER_DIRECTIVES zu injizieren. Ich habe es nur als Beispiel verwendet, weil es multi: true ist.

    
Günter Zöchbauer 01.07.2016 11:59
quelle
1

Die Verwendung von multi: true sagt Angular, dass der Provider ein Multi-Provider ist. Wie bereits erwähnt, können wir bei mehreren Anbietern mehrere Werte für ein einzelnes Token in DI bereitstellen.

Nutzungen:

Wenn wir einige Direktiven haben, die automatisch in unserer gesamten Anwendung verfügbar sein sollten, ohne dass sie in den Komponenten-Dekorationen definiert werden müssen, können wir die Vorteile mehrerer Anbieter nutzen und erweitern, was für PLATFORM_DIRECTIVES injiziert wird.

%Vor%

und

%Vor%

Details

    
Arpit Agarwal 01.07.2016 11:52
quelle
0

Aus der Dokumentation:

  

Erzeugt mehrere Provider, die demselben Token (einem Multi-Provider) entsprechen.   Multi-Provider werden zum Erstellen von Pluggable-Diensten verwendet, wobei der   System kommt mit einigen Standard-Providern, und der Benutzer kann registrieren   zusätzliche Anbieter. Die Kombination der Standardanbieter und der   zusätzliche Anbieter werden verwendet, um das Verhalten des Systems zu steuern.

Quelle

    
muetzerich 01.07.2016 11:56
quelle