services providedin modules example angular angular2-services angular2-modules

providedin - shared module angular



Angular2: error "No se pueden resolver todos los parĂ¡metros" al inyectar http en un servicio personalizado (1)

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

He construido un ErrorHandlerLogger que es un servicio que extiende ErrorHandler y registra los mensajes de error en un repositorio remoto.

ErrorHandlerLogger requiere el cliente http Angular proporcionado por HttpModule .

En el ErrorHandlerModule , importo HttpModule y defino ErrorHandlerLogger como proveedor.

En el AppModule Importe ErrorHandlerModule .

Cuando lanzo la aplicación me aparece el siguiente mensaje de error

Uncaught Error: Can''t resolve all parameters for ErrorHandlerLogger: (?).

Aqui mi codigo

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 { }

Cualquier ayuda es muy apreciada