У меня есть класс, реализующий ErrorHandler, и он предоставляется на уровне root. У меня есть 3 модуля в моем приложении, из которых 2 из них могут использовать ErrorHandler на уровне root, но один из них должен иметь другую версию ErrorHandler.
Я попытался создать две реализации ErrorHandler, одна из которых предоставленный на уровне root, я украсил вторую службу с помощью {обеспечитьIn: ThreePageModule}, но это не похоже на работу, так как всякий раз, когда возникает ошибка, например: HttpErrorResponse запускается ErrorHandler уровня root. Я смотрел на angular документация, в которой говорится, что, когда дочерний модуль загружается лениво, он получает предоставленную услугу. Я что-то здесь упускаю ??
Ниже приведен файл app.module.ts
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
FormsModule,
BrowserModule,
HttpClientModule,
AppRoutingModule
],
providers: [
....other services...
{
provide: HTTP_INTERCEPTORS,
useClass: HttpConfigInterceptor,
multi: true
},
{ provide: ErrorHandler, useClass: ExceptionHandlerService },
],
bootstrap: [AppComponent]
})
export class AppModule {}
AppRoutingModule.ts:
@NgModule({
imports: [
RouterModule.forRoot(appRoutes)
],
exports: [
RouterModule
]
})
export class AppRoutingModule { }
appRoutes.ts:
export const appRoutes: Routes = [
{
path: 'one',
loadChildren: './../one/one.module#OnePageModule'
},
{
path: 'two',
loadChildren: './../two/two.module#TwosPageModule'
},
{
path: 'three',
loadChildren: './../three/three.module#ThreePageModule'
}
];
ThreeModule.ts
@NgModule({
imports: [
...Imports...
],
entryComponents: [
ThreeComponent
],
providers: [DatePipe],
declarations: [
....Declarations.....
]
})
export class ClaimsPageModule { }
ThreeErrorHandlerService.ts
@Injectable({
providedIn: ThreePageModule
})
export class ThreeErrorHandlerService implements ErrorHandler {
constructor() { }
handleError(error: Error | HttpErrorResponse): void {
if (error instanceof HttpErrorResponse) {
return;
}
}
}
Я хочу использовать ThreeErrorHandlerService в ThreePageModule, все еще используя ExceptionHandlerService в остальных двух модулях.
Так мы добиваемся этого или я ошибаюсь.