如何在Angular中更改辅助路线?

时间:2019-10-17 18:05:21

标签: angular routing

这是我的 app.routing.module.ts 文件

  { path: 'admin', component: AdminComponent,
    children: [
      { path: 'driverregister',outlet: 'adminnavbar', component: RegisterdriverComponent},
      { path: 'viewdrivers',outlet: 'adminnavbar', component: ViewdriversComponent},
      { path: 'editdriverdetails',outlet: 'adminnavbar', component: EditdriverdetailsComponent},
    ]
  },

点击以下路由器链接

[routerLink]="[{outlets: {'adminnavbar': 'driverregister'}}]"

我的网址显示为

http://localhost:4200/admin/(adminnavbar:viewdrivers)

现在我想将URL更改为

http://localhost:4200/admin/(adminnavbar:editdriverdetails)

我尝试使用

[routerLink]="[{outlets: {'adminnavbar': 'editdriverdetails'}}]"

但是没有用。它在控制台中显示以下错误。

Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'admin' Error: Cannot match any routes. URL Segment: 'admin'

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

[routerLink]中的信息是一个命令数组。默认情况下,routerLink是相对于您当前的路由的。如果您已经在http://localhost:4200/admin/(adminnavbar:viewdrivers)上,那么当您使用[routerLink]="[{outlets: {'adminnavbar': 'editdriverdetails'}}]"时,Angular将使用当前路线作为基本路线。您想要的是回到admin的基本路线。

它应该像这样[routerLink]="['/admin', {outlets: {'adminnavbar': 'editdriverdetails'}}]"。这样说,

  1. 首先转到/admin路线
  2. 然后去(adminnavbar:viewdrivers)出口