您好,我在Angular的自定义异常处理程序中添加了路由导航,但是我遇到的问题是,当在Angular组件的onInit上触发错误时,它会进入错误循环:
错误:无法激活已经激活的插座
这是我的组件的代码:
import { ErrorHandler, Injectable, Injector } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
@Injectable()
export class ErrorService implements ErrorHandler {
constructor(
private injector: Injector
) { }
get router(): Router {
return this.injector.get(Router);
};
handleError(error: any): void {
console.error(error);
this.router.navigate(['error', { error: error }], { skipLocationChange: true});
}
}
Run Code Online (Sandbox Code Playgroud)
这些是我的路线:
export const routes: Routes = [
{ path: '', redirectTo: 'browser', pathMatch: 'full' },
{ path: 'browser', loadChildren: './modules/browserui#BrowserUiModule' },
{ path: 'error', component: ErrorComponent, …Run Code Online (Sandbox Code Playgroud)