Инжектор Angular 2 не может найти службу при загрузке CustomExceptionHandler
При попытке внедрить сервис в мой CustomExceptionHandler, угловой инжектор не может найти сервис.
Ошибка: Uncaught Can't resolve all parameters for CustomExceptionHandler: (?).
Настройка:
CustomExceptionHandler
import { ExceptionHandler } from '@angular/core';
import { ServiceA } from '../services/a.service';
export class CustomExceptionHandler extends ExceptionHandler {
constructor(private serviceA: ServiceA) {
super(null, null);
}
call(error, stackTrace = null, reason = null) {
//do something with the service
}
}
app.module
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
ServiceA,
{ provide: ExceptionHandler, useClass: CustomExceptionHandler },
],
bootstrap: [AppComponent],
})
export class AppModule { }
2 ответа
Решение
Обновить ExceptionHandler
был переименован в ErrorHandler
/questions/46627621/angular2-prilozhenie-avarijno-zavershaet-rabotu-perestaet-otvechat-na-zaprosyi-posle-vozniknoveniya-isklyucheniya-oshibki/46627642#46627642
orgiginal
добавлять @Injectable()
в ваш класс CustomExceptionHandler.
Добавьте CustomExceptionHandler в качестве другого вашего провайдера в app.module.ts:
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
ServiceA,
CustomExceptionHandler,
{ provide: ExceptionHandler, useClass: CustomExceptionHandler },
],
bootstrap: [AppComponent],
})
export class AppModule { }
Вам нужно добавить CustomExceptionHandler
и его зависимость от providers
также:
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
ServiceA,
CustomExceptionHandler,
{ provide: ExceptionHandler, useClass: CustomExceptionHandler },
],
bootstrap: [AppComponent],
})
export class AppModule { }