0
シングルトン....依存関係注入角度4:私のサービスではない私は、この設定でOpenIDの認証パッケージを使用するために苦労してい
私は3つのモジュールがあります。
モジュール1:mainApplication モジュールを2:core モジュール3:ポータル
私はcore-oauth2-oidcからOAuthServiceを拡張してコアモジュールにサービス(AuthService)を持っています。
これは、角度-oauth2-oidcからdepencyを分離する単なる方法です。
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({宣言:[..]、インポート[..]、プロバイダ[AuthService] ..)}を使用する場合、必要なコンポーネントのAuthServiceのみをインポートする必要があると思った – Eliseo