0
我也很难使用一个OpenID身份验证包与这个配置....依赖注射角4:我的服务不是一个单
我有3个模块:
模块1:mainApplication 模块2:核心 模块3:门户
我在核心模块中有一个服务(AuthService),从angular-oauth2-oidc扩展OAuthService。
这只是一种从angular-oauth2-oidc中分离依赖性的方法。
mainApplication模块正在加载门户&核心服务。
@NgModule({
declarations: [
],
entryComponents: [
],
imports: [
CommonModule,
IsocialCoreModule.forRoot(),
IsocialPortalModule.forRoot(portalConfig),
])}
export class MyMainApp {}
我portalModule:
imports: [
MyCoreModule,
],
})
export class MyPortalModule {
static forRoot(config: PortalConfig): ModuleWithProviders {
return {
ngModule: PortalModule,
providers: [ConfigService,
{provide: PortalConfigToken, useValue: config},
AuthService// --> Error if not added]
};
}
}
我coreModule:
@NgModule({
imports: [
HttpModule,
OAuthModule.forRoot()
],
declarations: [],
})
export class MyCoreModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyCoreModule,
providers: [BasicGuardService, AuthService // Error if not added]
};
}
}
我的配置服务:
constructor(@Inject(PortalConfigToken) private portalConfig: PortalConfig, private authService: AuthService) {
this.config = this.portalConfig;
this.authService.configure(this.portalConfig.authConfig);
}
看来,AuthService是实例化一个以上的时间。 ..
我在配置服务的那一刻和使用它的那一刻失去了配置。
我试过了。但通过这样做,我有一个例外情况说供应商没有定义。 – bokzor
错误错误:没有提供AuthService! 我必须将它作为依赖项添加到Core,Portal和MainApp中 – bokzor
对不起,我是Angular4中的一个新手。我认为如果你使用mainApplication,@NgModule({declarations:[..],imports [..],providers [AuthService] ..)}你只需要导入你需要的组件中的AuthService – Eliseo