Angular 2 внедряет сервис в расширенный класс (BaseRequestOptions)
У меня есть следующий код, который расширяетBaseRequestOptions
учебный класс:
import { Injectable } from '@angular/core';
@Injectable()
export class AppRequestOptions extends BaseRequestOptions {
constructor(private serviceA:ServiceA) {
super();
}
merge(options?: RequestOptionsArgs): RequestOptions {
console.log(this.serviceA);
//this.serviceA.myCustomMethod();
return super.merge(options);
}
}
Когда я ссылаюсьthis.serviceA
значениеundefined
, Когда я внедряю тот же сервис в другие сервисы / компоненты, он работает как положено.
Вот полный код начальной загрузки:
import { Injectable } from '@angular/core';
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
import { APP_ROUTER_PROVIDERS } from './routes';
import { HTTP_PROVIDERS, BaseRequestOptions, RequestOptions, RequestOptionsArgs, Headers } from '@angular/http';
import { ServiceA } from './ServiceA';
@Injectable()
export class AppRequestOptions extends BaseRequestOptions {
constructor(private serviceA:ServiceA) {
super();
}
merge(options?: RequestOptionsArgs): RequestOptions {
console.log(this.serviceA);
//this.serviceA.myCustomMethod();
return super.merge(options);
}
}
bootstrap(AppComponent, [
APP_ROUTER_PROVIDERS,
HTTP_PROVIDERS,
ServiceA,
{ provide: RequestOptions, useClass: AppRequestOptions }
]).catch(err => console.error(err));
ServiceA
declaretion:
import { Injectable } from '@angular/core';
@Injectable()
export class ServiceA {
myCustomMethod() {
}
}
Я использую угловую версию2.0.0-rc.4
Я не уверен, что это потому, что я расширяю класс и отмечаю его как@Injectable()
?
Я проверил, и единственные связанные вопросы, которые я могу найти, являются:
Внедрить службу в службу внутри службы в моем приложении Angular 2
Angular 2: Внедрить сервис в другой сервис. (Нет ошибки провайдера)
ОБНОВИТЬ
Похоже, это связано с открытой ошибкой:https://github.com/angular/angular/issues/8925