我用Angular2 V2.2.3Angular2 - 异步依赖注入
我创建通用模块forRoot()函数,就像这样:
...
public static forRoot(): ModuleWithProviders {
return {
ngModule: CommonsModule,
providers: [
SomeOtherDependency,
{
provide: ConfigService,
useFactory: ConfigFactory,
deps: [Http]
}
]
};
这里是我的ConfigFactory:
export function ConfigFactory(http:Http):Promise<ConfigService> {
return http.get('confg/config.json').map(r => {
return new ConfigService(r);
}).toPromise();
}
我试图返回无极和可观察为好。
Provider中定义的SomeOtherDependency需要ConfigService。问题在于Angular没有注入承诺解决的价值,而是承诺自己。
如何强制角度等待,直到承诺解决了适当的依赖关系,然后将其注入其他依赖关系?
我试过不同的方法,总是注入价值是承诺或可观察。就像iniector忽略什么类型的工厂返回。我需要在整个应用程序启动前加载一些json文件
的可能的复制[2个 - 服务消费等服务之前调用的方法(http://stackoverflow.com /问题/ 38127741 /角2的服务费时,其他服务前方的呼叫A-法) – estus
退房也评论这个问题http://stackoverflow.com/questions/40522938/lazy-loading-module -with-APP-初始化?noredirect = 1个#comment68288686_40522938 – yurzui
之前,我问我已经看到了这个话题。他们不适合我。 –