我已经构建了一个ErrorHandlerLogger,它是一个扩展ErrorHandler并将错误消息记录到远程存储库的服务。
ErrorHandlerLogger需要HttpModule提供的Angular http客户端。
在ErrorHandlerModule中,我导入HttpModule并将ErrorHandlerLogger定义为提供者。
在AppModule中我导入了ErrorHandlerModule。
当我启动应用程序时,我收到以下错误消息
Uncaught Error: Can't resolve all parameters for ErrorHandlerLogger: (?).
在这里我的代码
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 { }
很感谢任何形式的帮助
@Injectable() // <<<=== required if the constructor has parameters export class ErrorHandlerLogger extends ErrorHandler {