j'ai du mal à utiliser un paquet d'authentification OpenID avec cette configuration ....Injection angulaire 4 Dépendances: mon service pas un singleton
j'ai 3 modules:
modules1: mainApplication Module 2: core module 3: portal
J'ai un service (AuthService) dans le module de base, étendant OAuthService de angular-oauth2-oidc.
C'est juste un moyen d'isoler la dépent d'angular-oauth2-oidc.
Le module mainApplication charge le service principal du portail &.
@NgModule({
declarations: [
],
entryComponents: [
],
imports: [
CommonModule,
IsocialCoreModule.forRoot(),
IsocialPortalModule.forRoot(portalConfig),
])}
export class MyMainApp {}
Mon 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]
};
}
}
Mon coreModule:
@NgModule({
imports: [
HttpModule,
OAuthModule.forRoot()
],
declarations: [],
})
export class MyCoreModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyCoreModule,
providers: [BasicGuardService, AuthService // Error if not added]
};
}
}
Mon service de configuration:
constructor(@Inject(PortalConfigToken) private portalConfig: PortalConfig, private authService: AuthService) {
this.config = this.portalConfig;
this.authService.configure(this.portalConfig.authConfig);
}
Il semble que le AuthService est instancie plus d'une fois. ..
Et j'ai perdu la config entre le moment où je configure le service et le moment où je l'utilise.
Je l'ai essayé. Mais en faisant cela, j'ai une exception disant que le fournisseur n'est pas défini. – bokzor
Erreur ERREUR: Aucun fournisseur pour AuthService! Je dois l'ajouter en tant que dépendance dans Core, Portal & MainApp – bokzor
Désolé, je suis un peu novice dans Angular4. Je pensais que si vous utilisez mainApplication, @NgModule ({déclarations: [..], importations [..], fournisseurs [AuthService] ..)} vous devez seulement importer l'AuthService dans le composant dont vous avez besoin – Eliseo