小编Ped*_*rez的帖子

在自定义错误处理程序中使用router.navigate时出错

您好,我在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)

angular2-routing angular

4
推荐指数
2
解决办法
4070
查看次数

标签 统计

angular ×1

angular2-routing ×1