Routing 以编程方式处理丢失/不正确的路由

Routing 以编程方式处理丢失/不正确的路由,routing,angular,Routing,Angular,假设我们有三条路线: / /登录 /报告 当前,如果用户手动输入不存在的路由(如/bla-bla: browser_adapter.js?d744:76 Error: Uncaught (in promise): ObjectUnsubscribedError at resolvePromise (angular2-polyfills.js:543) at angular2-polyfills.js:579 at ZoneDelegate.invokeTask (angular2-polyf

假设我们有三条路线:

  • /
  • /登录
  • /报告
当前,如果用户手动输入不存在的路由(如/bla-bla:

browser_adapter.js?d744:76 Error: Uncaught (in promise): ObjectUnsubscribedError
at resolvePromise (angular2-polyfills.js:543)
at angular2-polyfills.js:579
at ZoneDelegate.invokeTask (angular2-polyfills.js:365)
at Object.NgZoneImpl.inner.inner.fork.onInvokeTask (ng_zone_impl.js?ae31:35)
at ZoneDelegate.invokeTask (angular2-polyfills.js:364)
at Zone.runTask (angular2-polyfills.js:263)
at drainMicroTaskQueue (angular2-polyfills.js:482)
at ZoneTask.invoke (angular2-polyfills.js:434)
然后URL仍然无效:/bla bla


我想知道是否可以安装路由错误处理程序,以便能够响应

您可以添加路径为
/**
的定义:

@RouteConfig([
  {path:'/',name:'Home',component:HomeComponent},
  {path:'/reports',name:'Reports',component:ReportsComponent},
  {path:'/login',name:'Login',component:LoginComponent},
  {path:'/**',component:InvalidRouteComponent}
])
路径:
/**
将匹配尚未定义的每个路径

在InvalidRouteComponent中,您可以插入
路由器
,以访问lastNavigationAttempt:

@Component({
    selector: 'default-route',
    template: 'This is an invalid path: {{lastRoute}}'
})
export class DefaultComponent {
  lastRoute:string;
  constructor(private _router:Router){
    this.lastRoute = _router.root.lastNavigationAttempt;
  }
}