当使用 Angular < 16 时,我曾经有过这样的路由配置:
{
path: Section.Security,
canActivate: [AuthGuard, AccessGuard, AdminGuard],
children: [
{
path: '',
pathMatch: 'full',
redirectTo: 'administrators'
},
{
path: '',
outlet: 'left-menu',
canActivate: [AuthGuard],
loadComponent: () => import('@app/components/left-menu/left-menu.component').then(m => m.SecurityLeftMenuComponent)
},
{
path: 'administrators',
canActivate: [AuthGuard],
loadComponent: () => import('@app/pages/security/security.page').then(m => m.SecurityHomePage)
},
{
path: 'contributors',
canActivate: [AuthGuard],
loadComponent: () => import('@app/pages/security/security.page').then(m => m.SecurityHomePage)
},
{
path: 'readers',
canActivate: [AuthGuard],
loadComponent: () => import('@app/pages/security/security.page').then(m => m.SecurityHomePage)
}
]
}
而在 SecurityLeftMenuComponent
中,我有简单的链接到子路由,例如:
<a class="item"
routerLinkActive="active"
routerLink="administrators">
<rn-key name="security::administrators" />
</a>
它之前运行得非常好,但自从我更新到Angular 16后,由routerLink生成的链接现在具有不同的格式:“/security/(readers//left-menu:administrators)”
我可以通过使用以下方法来解决这个问题:
<a class="item"
routerLinkActive="active"
routerLink="/security/administrators">
<rn-key name="security::administrators" />
</a>
但目标是要有相对链接。 我尝试使用"./",但仍然存在同样的问题。
保持与以前相同的行为方式的最佳方法是什么?
编辑:
由于我正在迁移多个应用程序,我注意到在使用相对路径时确实会出现问题。在其他应用程序的绝对路径中没有遇到任何问题。