J'ai construit un ErrorHandlerLogger qui est un service qui étend ErrorHandler et enregistre les messages d'erreur dans un référentiel distant.
ErrorHandlerLogger nécessite le client Angular http fourni par le HttpModule.
Dans le ErrorHandlerModule j'importe HttpModule et définit ErrorHandlerLogger comme fournisseur.
Dans le AppModule j'importe ErrorHandlerModule.
Lorsque je lance l'application, j'obtiens le message d'erreur suivant
Uncaught Error: Can't resolve all parameters for ErrorHandlerLogger: (?).
Voici mon code
ErrorHandlerModule
import { NgModule, ErrorHandler } from '@angular/core';
import { HttpModule } from '@angular/http';
import {ErrorHandlerLogger} from './error-handler-logger';
@NgModule({
declarations: [],
exports: [],
imports: [
HttpModule
],
providers: [
{provide: ErrorHandler, useClass: ErrorHandlerLogger}
]
})
export class ErrorHandlerModule {}
ErrorHandlerLogger
import { ErrorHandler } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import './rxjs-operators';
export class ErrorHandlerLogger extends ErrorHandler {
constructor(private http: Http) {
super();
}
handleError(error) {
// my logic
}
}
AppModule
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import {ErrorHandlerModule} from './error-manager/error-handler.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
routing,
ErrorHandlerModule
],
providers: [appRoutingProviders],
bootstrap: [AppComponent]
})
export class AppModule { }
Toute aide est fortement appréciée
@Injectable() // <<<=== required if the constructor has parameters
export class ErrorHandlerLogger extends ErrorHandler {