Angular 6:如果“无法匹配任何路由”已移至其他组件

Suv*_*kar 4 angular-routing angular

我有如下的路线配置:

const routes: Routes = [
  { path: '', redirectTo: '/login', pathMatch: 'full' },
  { path: 'login', component: LoginComponent },
  { path: 'dashboard', component: DashboardComponent }
];
Run Code Online (Sandbox Code Playgroud)

现在,如果有人想访问像http://localhost:4200/xyzxyz这样的 url ,那么我会收到此错误

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

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

知道我怎样才能实现这一目标吗?

nir*_*aft 5

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

const routes: Routes = [
  { path: 'login', component: LoginComponent },
  { path: 'dashboard', component: DashboardComponent },
  { path: '', redirectTo: '/login', pathMatch: 'full' },
  { path: '**', redirectTo: '/login' }
];
Run Code Online (Sandbox Code Playgroud)

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