如何在 Angular 模块导入中进行注入

Thi*_*zar 5 dependency-injection ng-modules angular

我正在从外部库导入可配置模块,如下所示:

@NgModule({
  imports: [ThirdPartyModule.forRoot(MY_CONFIG)]
})
Run Code Online (Sandbox Code Playgroud)

问题是 MY_CONFIG 不是静态的,并且使用服务来定义其值,因此我将使用工厂来构建模块配置,如下所示:

@Injectable
class ConfigFactory {
  constructor(private configService: ConfigService){}

  public config(){
    return {
      someconfigvalue: this.configService.buildSomeConfigValue()
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我应该像这样重写导入

@NgModule({
  imports: [ThirdPartyModule.forRoot(configFactory.config())]
})
Run Code Online (Sandbox Code Playgroud)

但我不知道如何注入配置工厂。

我知道如果我的供应商遇到这种情况,我可以使用工厂供应商。

模块导入有类似的东西吗?我可以使用工厂来导入模块吗?或者这个问题还有其他解决方案吗?

PS请注意,我无法更改 ThirdPartyModule 的代码。