You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 17子路由跳转异常及导航图标定制问题求助

解决方案

1. 修复路由跳转路径错误

当前点击导航跳转到根路径/information,是因为[routerLink]="[item.path]"使用了绝对路径,而我们需要基于student父路由的相对路径,两种修改方式:

方式一:使用相对路由语法

在StudentComponent模板中,用.代表当前激活的父路由,修改routerLink:

<mat-nav-list>
  @for (item of routes(); track item) {
  <a mat-list-item [routerLink]="['.', item.path]" [routerLinkActive]="['router-is-active']" class="block">
    {{ item.data.name }}
  </a>
  }
</mat-nav-list>

方式二:直接拼接父路由路径

如果明确父路由路径,也可以直接拼接:

<mat-nav-list>
  @for (item of routes(); track item) {
  <a mat-list-item [routerLink]="['/student', item.path]" [routerLinkActive]="['router-is-active']" class="block">
    {{ item.data.name }}
  </a>
  }
</mat-nav-list>

注:routerLinkActiveOptions="{exact: true}"是控制路由激活状态的匹配规则,和跳转路径错误无关,所以之前添加无法解决问题。

2. 为导航项添加不同图标

步骤1:更新路由配置,新增图标字段

在每个子路由的data中添加icon属性(使用Angular Material Icons的图标名称):

{
  path: "student",
  component: StudentComponent,
  canActivate: [authenticationGuard],
  data: {
      role: "student",
    },
  children: [
    {
      path: "information",
      component: InformationComponent,
      data: {
        name: "Information",
        icon: "person"
      }
    },
    {
      path: "submission",
      component: SubmissionComponent,
      data: {
        name: "Submission",
        icon: "assignment_turned_in"
      }
    },
    {
      path: "seminar-invitation",
      component: SeminarInvitationComponent,
      data: {
        name: 'Seminar',
        icon: "event"
      }
    },
  ],
}

步骤2:在模板中渲染图标

确保已导入Angular Material的IconModule,然后在模板中添加mat-icon标签:

<mat-nav-list>
  @for (item of routes(); track item) {
  <a mat-list-item [routerLink]="['.', item.path]" [routerLinkActive]="['router-is-active']" class="block">
    <mat-icon>{{ item.data.icon }}</mat-icon>
    <span class="ml-2">{{ item.data.name }}</span>
  </a>
  }
</mat-nav-list>

可通过添加CSS类(如ml-2)调整图标与文字的间距。


内容的提问来源于stack exchange,提问作者nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 02:05:06