提供的服务在功能中未定义



我有一个服务,它是在app.module.ts中提供的,并注入到一个导出函数中(该函数也在app模块中)。但是当运行MSALInstanceFactory中的代码时,它说该服务是未定义的。

import { HttpClient } from '@angular/common/http';
import { Injectable, Inject } from '@angular/core';
import { Configuration } from '../configuration/configuration';
@Injectable()
export class ConfigurationService {
private configData: Configuration;
constructor(private httpClient: HttpClient) { }
async loadConfigurationData() : Promise<Configuration>{
...
}
}
@NgModule({
declarations: [
AppComponent,
...
],
imports: [
HttpClientModule,
MsalModule,
...
],
providers: [
{
ConfigurationService,
{
provide: APP_INITIALIZER,
useFactory: (configService: ConfigurationService) =>
() => configService.loadConfigurationData(),
deps: [ConfigurationService],
multi: true
},
provide: HTTP_INTERCEPTORS,
useClass: MsalInterceptor,
multi: true
}, 
{
provide: MSAL_INSTANCE,
useFactory: MSALInstanceFactory
},
{
provide: MSAL_GUARD_CONFIG,
useFactory: MSALGuardConfigFactory
},
{
provide: MSAL_INTERCEPTOR_CONFIG,
useFactory: MSALInterceptorConfigFactory
},
...
],
export function MSALInstanceFactory(configurationService: ConfigurationService): IPublicClientApplication {
return new PublicClientApplication({
auth: {
clientId: configurationService.config.clientId
});

我不知道是什么问题。

你能帮帮我吗?

您也应该提供依赖项:

{
provide: MSAL_INSTANCE,
useFactory: MSALInstanceFactory,
deps: [ConfigurationService]
},

来源:https://angular.io/guide/dependency-injection-providers

最新更新