web-dev-qa-db-fra.com

Angular2 - Erreur "Impossible de résoudre tous les paramètres" lors de l'injection de http dans un service personnalisé

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

26
Picci
@Injectable() // <<<=== required if the constructor has parameters 
export class ErrorHandlerLogger extends ErrorHandler {
66