角度6:提供者,部门未初始化

时间:2018-09-28 12:28:30

标签: angular dependency-injection angular6

在与ngx-envconfig结合使用的角度6中使用自定义提供程序时遇到问题。

我的自定义提供程序如下:

  providers: [
    { provide: LoggerConfig, useFactory: LoggerConfigFactory, deps: [ConfigService] },
  ],

通过此实现:

export const LoggerConfigFactory = (configService: ConfigService) => {
  const logUrl = configService.getApi('Log');   
  const loggerConfig = new LoggerConfig();
  return loggerConfig;
};

第一行出现错误:

      const logUrl = configService.getApi('Log');   

因为配置服务1尚未初始化(已进行注入,但是我无法调用任何方法,因为此时未加载数据)。

如何确保注入的自定义提供程序注入的依赖项已初始化?

预先感谢

1 个答案:

答案 0 :(得分:0)

您必须将ConfigService添加到提供商列表中。

  providers: [
    ConfigService,
    { provide: LoggerConfig, useFactory: LoggerConfigFactory, deps: [ConfigService] },
  ],

尝试将ConfigService添加到提供商列表中。