0

というメソッドを提供する構成サービスがあります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 {}

それを手伝ってもらえますか?

4

1 に答える 1

1

ライブラリがトークンが であると想定している場合、Observable <Configuration>factory を使用して、次のように 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]
        }
    ]
    ...


于 2021-12-13T14:59:27.600 に答える