如何使用APP_INITALIZER将值fromRoot()传递到工厂?

时间:2018-09-05 09:17:57

标签: angular

我的库模块中有一个服务,该服务取决于在模块forRoot()中传递的值。如何将配置值传递到serviceConfigFactory中以在服务中使用?

以下代码失败: 请注意,我将配置放在deps: []

@NgModule({
  imports: [CommonModule]
})
export class MyModule {
  static forRoot(config): ModuleWithProviders {
    return {
      ngModule: ThirdPartyIntegrationsModule,
      providers: [
        MyService,
        {
          provide: APP_INITIALIZER,
          useFactory: serviceConfigFactory,
          deps: [
              MyService,  
              config
          ],
          multi: true
        }
      ]
    }
  }
}

export function serviceConfigFactory(
  myService: MyService, 
  config
) {
  const serviceConfig = () => {
    myService.init(config)
  }

  return () => {
    return serviceConfig()
  }
}

0 个答案:

没有答案