Ich implementiert http Interceptor-Dienst, es funktioniert, aber mein Problem ist, ich kann nicht herausfinden, wie man meinen eigenen Dienst in der Deklaration zu injizieren.Angular 2: Kann nicht injizieren Dienst in Anbietern mit useFactory
Ich bekomme Laufzeitfehler: No provider for MyService
in der Konsole.
Httpservice Interzeptorklasse:
// all the imports...
@Injectable()
export class HttpService extends Http {
constructor(backend: ConnectionBackend,
defaultOptions: RequestOptions,
private router: Router,
private injector: ReflectiveInjector,
private myService: MyService){
super(backend, defaultOptions);
}
// methods...
In meinem app.module.ts, ich habe eine Reihe von Anbietern:
[
{
provide: 'MyService',
useClass: MyService
},
{
provide: 'Http',
useFactory: (xhrBackend: XHRBackend,
requestOptions: RequestOptions,
router: Router,
injector: ReflectiveInjector,
myService: MyService) =>
new HttpService(xhrBackend, requestOptions, router, injector, myService),
deps: [XHRBackend, RequestOptions, Router, Injector, MyService]
}]
ich mehrere SO Fragen/Antworten überprüft haben, aber couldn‘ t finden Sie ein ähnliches Beispiel ..
Danke!
ich meine Frage aktualisiert haben, so dass Sie anpassen können, wurde ich mit {liefern: ‚MyService‘, useClass: MyService}, in meinem Provider Array, sondern setzen MyService nur (wie du vorgeschlagen hast) gearbeitet! –