我正在使用Angular4并尝试处理生产中的意外错误。我的方案是,如果我们收到错误,只需重定向到登录页面 不幸的是我得到一个'错误:提供程序解析错误:无法实例化循环依赖! ApplicationRef ...
只要在构造函数中引用Router,就会发生错误。
任何指导都将不胜感激
代码如下:
import {ErrorHandler, Injectable} from '@angular/core';
import {WSClientService} from '../services/wslib/wsclient.service'
import {Router} from '@angular/router'
@Injectable()
export class VxErrorHandler implements ErrorHandler {
private _router = null
constructor( private _wsClientService:WSClientService, private router: Router) {}
handleError(error:any) {
this.router.navigateByUrl("/login");
}
}
答案 0 :(得分:1)
如果无法解决循环依赖关系,可以尝试从进样器获取路由器。
@Injectable()
export class VxErrorHandler implements ErrorHandler {
private _router = null
constructor( private _wsClientService:WSClientService, private injector: Injector) {}
handleError(error:any) {
this.injector.get<Router>(Router).navigateByUrl("/login");
}
}