簡體   English   中英

在 app.module.ts 中調用 service 方法提供其他服務

[英]Call service method to provide other services within app.module.ts

我有一個配置服務,它提供了一個名為getConfiguration(): Observable <Configuration>的方法。

為了填充我的外部庫,我想在app.module.ts中提供此方法(我想填充庫中預期的 InjectionToken)。

現在我想知道如何/應該在提供程序塊中調用此邏輯。

@NgModule({
  declarations: [AppComponent],
  imports: [
      //...
  ],
  providers: [
    {
        provide: MY_CONFIG,
        useValue: ConfigurationService.getConfiguration(), // <--- won't work!
    }
  ]
  bootstrap: [AppComponent],
})
export class AppModule {}

你能幫我解決這個問題嗎?

如果您的庫希望令牌是Observable <Configuration> ,那么您可以使用工廠提供 Observable 值,如下所示:

有關使用工廠提供程序的更多詳細信息: https://angular.io/guide/dependency-injection-providers#using-factory-providers


    function configFactory(configService: ConfigurationService) {
        return configService.getConfiguration();
    }

    ...
    providers: [
        {
            provide: MY_CONFIG,
            useFactory: configFactory,
            deps: [ConfigurationService]
        }
    ]
    ...


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM