我用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
之前,我問我已經看到了這個話題。他們不適合我。 –