sso*_*nez 7 angular-routing angular angular16
当使用角度<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)
}
]
}
Run Code Online (Sandbox Code Playgroud)
并且,在 中SecurityLeftMenuComponent,我有指向子路线的简单链接,例如:
<a class="item"
routerLinkActive="active"
routerLink="administrators">
<rn-key name="security::administrators" />
</a>
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但自从我更新到 Angular 16 后,routerLink 生成的链接现在具有不同的格式:“/security/(readers//left-menu:administrators)”
我可以使用以下方法解决这个问题:
<a class="item"
routerLinkActive="active"
routerLink="/security/administrators">
<rn-key name="security::administrators" />
</a>
Run Code Online (Sandbox Code Playgroud)
但目标是建立相对链接。我尝试使用“./”,但仍然遇到同样的问题。
保持与以前相同的行为的最佳方法是什么?
编辑:
当我正在迁移多个应用程序时,我注意到使用相对路由时确实会出现此问题。我在其他应用程序的绝对路径中没有遇到任何问题
小智 0
我不确定这是否能解决您的问题,但我做了以下工作:
<button
mat-raised-button
color="primary"
[routerLink]="['..', 'project-creator']"
>
Text
</button>
Run Code Online (Sandbox Code Playgroud)
这些路线是相对的,我什至可以设法使用“...”来升级。对我来说,诀窍是在我的独立组件中导入 RouterModule 。否则,按钮上不存在 routerLink 属性,因此您无法绑定到它。
为了清楚起见,这是我使用这些导入的组件
import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { RouterModule } from '@angular/router';
@Component({
selector: 'my-selector',
standalone: true,
imports: [CommonModule, MatButtonModule, RouterModule],
templateUrl: './project-overview.component.html',
styleUrls: ['./project-overview.component.scss'],
})
export class ProjectOverviewComponent {}
Run Code Online (Sandbox Code Playgroud)
我不需要注入 RouterModule,导入它就足够了
| 归档时间: |
|
| 查看次数: |
3320 次 |
| 最近记录: |