DI与自定义HTTP循环依赖和ConfigService的
问题描述:
我想实现的ConfigService以获取正确的配置在项目合适的环境。我目前遇到的环扶养DI与自定义HTTP循环依赖和ConfigService的
(index):28 Error: (SystemJS) Provider parse errors:
Cannot instantiate cyclic dependency! Http: in NgModule AppModule
Error: Provider parse errors:
我已经了解的代码,有问题,在我看来:
CustomHttp
constructor(backend: XHRBackend, options: RequestOptions, public spinnerService: SpinnerService, public exceptionService: ExceptionService, public configService: ConfigService)
ExceptionService
constructor(private _notificationService: NotificationService, private _spinnerService: SpinnerService, private _configService: ConfigService, private _router: Router)
的ConfigService
constructor(private http: Http) {}
正如你所看到的,我已经在这个图中所示的循环依赖关系(没有任何好习惯):
我现在的问题是,如何解决它?我听说过,但Injector
我不知道我真的可以用它在这方面。
预先感谢您的回答。
答
DI解决不了循环依赖。解决方法是注入注入器并获取实例命令:
@Injectable()
class ConfigService {
private http: Http;
constructor(injector:Injector) {
setTimeout(() => this.http = injector.get(Http);
}
}
与此同时,Angular 4还有另一种方法吗? – CSchulz
这是对角2 - 4 –
我希望在此期间有此改善。 – CSchulz