这是我的 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'
如何解决此问题?
答案 0 :(得分:3)
[routerLink]
中的信息是一个命令数组。默认情况下,routerLink是相对于您当前的路由的。如果您已经在http://localhost:4200/admin/(adminnavbar:viewdrivers)
上,那么当您使用[routerLink]="[{outlets: {'adminnavbar': 'editdriverdetails'}}]"
时,Angular将使用当前路线作为基本路线。您想要的是回到admin
的基本路线。
它应该像这样[routerLink]="['/admin', {outlets: {'adminnavbar': 'editdriverdetails'}}]"
。这样说,
/admin
路线(adminnavbar:viewdrivers)
出口