角度扩展错误处理程序循环错误

时间:2017-11-16 17:46:40

标签: javascript angular

我正在尝试扩展角度ErrorHandler,以便我可以将我的应用程序重定向到另一个组件并进行一些记录。

我创建了错误处理程序,如下所示:

import { Router } from '@angular/router';
import { ErrorHandler, Injectable, Injector } from '@angular/core';

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
    constructor(
        private injector: Injector,
        private router: Router
    ) {}

    handleError(error) {
        this.router.navigateByUrl('/error');
        //throw error;
    }
}

app.module:

providers:[ { provide: ErrorHandler, useClass: GlobalErrorHandler } ]

当我尝试像这样加载我的应用程序时,我收到以下错误。

compiler.es5.js:11684 Uncaught Error: Provider parse errors:
Cannot instantiate cyclic dependency! Router ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1

听起来这与我试图导入的router tat有关,可以进行重定向。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

而不是这个

providers:[ { provide: ErrorHandler, useClass: GlobalErrorHandler } ]

你应该这样做

providers:[ErrorHandler, GlobalErrorHandler]

这只是一个简单的数组

希望有所帮助