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