Könnte jemand erklären, mir den Unterschied zwischenAngular2 Dienstleistungen Injection in Bootstrap
bootstrap(MyApp, [provide(Service1, { useClass: Service1})]);
und
bootstrap(MyApp, [Service1]);
Könnte jemand erklären, mir den Unterschied zwischenAngular2 Dienstleistungen Injection in Bootstrap
bootstrap(MyApp, [provide(Service1, { useClass: Service1})]);
und
bootstrap(MyApp, [Service1]);
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:
Sie auch einen Blick auf die Dokumentation der Provider
Klasse haben könnte https://angular.io/docs/ts/latest/api/core/Provider-class.html
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
bootstrap(MyApp, [Service1]);
tun.
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 –