首页 > 解决方案 > Angular 6:如果“无法匹配任何路线”移动到其他组件

问题描述

我有一个如下的路线配置:

const routes: Routes = [
  { path: '', redirectTo: '/login', pathMatch: 'full' },
  { path: 'login', component: LoginComponent },
  { path: 'dashboard', component: DashboardComponent }
];

现在,如果有人想访问xyzhttp://localhost:4200/xyz这样的网址,那么我会收到此错误

未捕获(承诺):错误:无法匹配任何路由。网址段:'xyz'

但我想在上述情况下重定向到登录页面。

知道如何实现吗?

标签: angularangular-routing

解决方案


您应该添加通配符路由**以捕获任何意外/不匹配/未列出的 url,并将重定向添加到/login.

const routes: Routes = [
  { path: 'login', component: LoginComponent },
  { path: 'dashboard', component: DashboardComponent },
  { path: '', redirectTo: '/login', pathMatch: 'full' },
  { path: '**', redirectTo: '/login' }
];

注意**最后一条路由中的路径是通配符。如果请求的 URL 与配置中先前定义的路由的任何路径都不匹配,路由器将选择此路由。确保它是路线列表中的最后一个条目!


推荐阅读