DI具有循环依赖与自定义HTTP和ConfigService
我试图实现一个ConfigService来检索项目中正确环境的正确configuration。 我目前遇到循环依赖
(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); } }