Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用服务结果配置模块_Angular - Fatal编程技术网

Angular 使用服务结果配置模块

Angular 使用服务结果配置模块,angular,Angular,我有一个(可注入的单例)服务,可以从服务器加载配置 export class ConfigService { //.. some properties private static instance: ConfigService; constructor( //.. some dependecies, including Http) { if (ConfigService.instance) { return ConfigService.instance;

我有一个(可注入的单例)服务,可以从服务器加载配置

export class ConfigService {
  //.. some properties
  private static instance: ConfigService;

  constructor( //.. some dependecies, including Http) {
    if (ConfigService.instance) {
        return ConfigService.instance;
    }

    ConfigService.instance = this;
  }

  init(){
    //..  load config file from server
  }
}
我在app init上运行它

@NgModule({
  imports: [InnerModule],
  providers: [ //...
    { 
       provide: APP_INITIALIZER, 
       useFactory: (config: ConfigService) => () => config.init(), 
       deps: [ConfigService], 
       multi: true 
    }
 ]
)
export class AppModule {}
现在,内部模块需要加载一个库模块,该库模块可以通过使用配置对象的
.forRoot
调用进行配置

@NgModule({
    imports: [
        LibraryModule.forRoot({
            colors: //.. colors provided by configuration service
        })
    ],
})
export class InnerModule { }
问题是,模块加载是在初始值设定项运行之前完成的,因此我无法在那里使用配置

有没有办法推迟模块加载,直到我能保证配置已加载



我基本上需要的是能够配置一个只能通过
.forRoot
配置的库,其中包含一些仅在运行时可用的数据,并且需要从服务器加载。

这是一个糟糕的做法。试着用另一种方法解决它,我知道。另一个问题是:)