角度 6:如果"Cannot match any routes"移动到其他组件



我具有下面的路由配置:

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

现在,如果有人想访问 xyz url,例如http://localhost:4200/xyz,那么我会遇到此错误

undurew(在承诺中(:错误:无法匹配任何路由。URL段: 'xyz'

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

知道我该如何实现?

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

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

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

只需添加一个catch-all路径

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

最新更新