Angular4应用程序初始值设定项赢得';t延迟初始化

Angular4应用程序初始值设定项赢得';t延迟初始化,angular,configuration,initialization,angular-cli,Angular,Configuration,Initialization,Angular Cli,Typescript:2.2.0 角度:4.0 我试图通过使用APP\u初始值设定项,确保在应用程序启动之前初始化ConfigService对象。我已经找到了很多这样做的例子,但是没有一个会延迟应用程序的初始化。这里只是我尝试实现的几个示例 这是我的NgModule课程 导出函数初始化(配置:ConfigService){ return()=>{ config.load(); }; } @NGD模块({ 声明:[ 应用组件 ], 进口:[ 浏览器模块, FormsModule, HttpMo

Typescript:2.2.0 角度:4.0

我试图通过使用
APP\u初始值设定项
,确保在应用程序启动之前初始化
ConfigService
对象。我已经找到了很多这样做的例子,但是没有一个会延迟应用程序的初始化。这里只是我尝试实现的几个示例

这是我的
NgModule
课程

导出函数初始化(配置:ConfigService){ return()=>{ config.load(); }; } @NGD模块({ 声明:[ 应用组件 ], 进口:[ 浏览器模块, FormsModule, HttpModule, 批准模块 ], 供应商:[ { “提供”:应用程序初始值设定项, “useFactory”:初始化, “deps”:[ConfigService], “多重”:正确 }, 配置服务 ], 引导:[AppComponent] }) 导出类AppModule{ } 下面是
ConfigService

@Injectable()
导出类配置服务{
私有配置:应用程序配置;
获取apiRoot(){
返回此.getProperty('apiRoot');//res.json()).toPromise();
然后(配置=>{

this.config=config;//看起来您忘记了从工厂返回值:

导出函数初始化(配置:ConfigService){ return()=>{ return config.load();//添加return }; }
或者,同样的代码可以在短时间内编写:

导出函数初始化(配置:ConfigService){ return()=>config.load(); }
是的,就是这样!非常感谢!对于阅读本文的其他人来说,还有一个最近的错误(截至目前为止),其中有一个微妙的错误。虽然在通过config.load()确定配置加载之前,应用程序不会引导,但是在config.load()之前,您的配置服务将作为一个服务注入其他服务中完成。是的,您将ConfigService注入到的所有其他服务将被注入一个不完整/尚未加载的对象。因此,您需要非常小心应用程序的其余部分如何使用ConfigService,因为您正在处理一个尚未真正完成构建的对象。不要指望运气好/工厂订购。@goat您有什么更好的方法的例子/建议吗?@JoelDavey投票给我,所以ng团队给了我们一个解决方案。我请求了异步提供程序,但我们会看看他们做了什么。