2016-03-22 8 views
0

Könnte jemand erklären, mir den Unterschied zwischenAngular2 Dienstleistungen Injection in Bootstrap

bootstrap(MyApp, [provide(Service1, { useClass: Service1})]); 

und

bootstrap(MyApp, [Service1]); 
+0

Beachten Sie, dass die Angular-Dokumente uns jetzt davon abhalten, Provider mit 'bootstrap()' zu registrieren. Siehe https://angular.io/docs/ts/latest/guide/dependency- injection.html#!#configuring-the-injector –

Antwort

0

Es ist genau das gleiche. Sie können es verwenden, wenn das für den Anbieter verwendete Token die Klasse selbst ist. Wenn Sie etwas anderes hinter dem Provider-Token bereitstellen möchten, können Sie die provide-Funktion mit useClass, useValue, useExisting oder useFactory verwenden.

Hier sind einige Beispiele, die Sie interessieren:

0

Es gibt nicht wirklich einen Unterschied.

Mit dieser Version

bootstrap(MyApp, [provide(Service1, { useClass: Service1})]); 

nur Sinn macht, wenn die Klassen unterscheiden, wie

bootstrap(MyApp, [provide(XHRBackend, { useClass: MockBackend})]); 

eine MockBackend passieren, wenn ein XHRBackend angefordert wird (ist der Typ des Konstruktorparameter.

constructor(private backend:XHRBackend) {} 

würde eine MockBackend Instanz erhalten eingeleitet.

Wenn Sie nur Service1 wollen passieren, wenn Service1

angefordert wird
bootstrap(MyApp, [Service1]); 

tun.