使用组件进行Angular 2自定义HTTP错误处理

时间:2018-01-20 00:42:56

标签: angular ionic2

这是我到目前为止所做的:

@Component({
  selector: 'error-handler',
  templateUrl: 'error-handler.html'
})
export class ErrorHandlerComponent extends ErrorHandler {

  text: string;

  constructor() {
    super();
  }

  handleError(error: HttpErrorResponse) {
    console.log("ErrorHandlerComponent, error.status: ", error.status);
    this.text = error.message;
  }
}

但我的流程没有进入handleError,我收到以下错误:

polyfills.js:3 Uncaught Response {_body: ProgressEvent, status: 0, ok: false, statusText: "", headers: Headers, …}

1 个答案:

答案 0 :(得分:0)

您的ErrorHandler必须是@Injectable,而不是@Component。它没有与之关联的视图 - 它是一项服务。看起来应该是这样的:

@Injectable()
export class MyErrorHandler extends ErrorHandler {

  constructor() {
    super();
  }

  handleError(error) {
    // do whatever

    super.handleError(error);
  }
}