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

如何在Angular14中结合JSON Server实现动态菜单路由

Angular 14 动态菜单实现路由跳转解决方案

你的菜单数据包含两种跳转类型:内部Angular路由(routerLink字段)和外部链接(url字段),当前模板统一用href="#"无法实现对应跳转,按以下步骤修改即可解决:

1. 修改Header组件模板

通过*ngIf区分两种链接类型,内部路由使用Angular的routerLink指令,外部链接绑定href属性,同时优化激活状态的动态设置:

<li class="nav-item" *ngFor="let menuItem of user" routerLinkActive="active">
  <!-- 内部Angular路由跳转 -->
  <a class="nav-link" *ngIf="menuItem.routerLink" [routerLink]="[menuItem.routerLink]">
    {{ menuItem.displayName }}
  </a>
  <!-- 外部链接跳转 -->
  <a class="nav-link" *ngIf="menuItem.url" [href]="menuItem.url" target="_blank">
    {{ menuItem.displayName }}
  </a>
</li>

2. 确认路由配置正确性

确保become-angular-tailer路由已在app-routing.module.ts中配置,示例如下:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { YourTargetComponent } from './path/to/your-target.component'; // 替换为你的目标组件

const routes: Routes = [
  { path: 'become-angular-tailer', component: YourTargetComponent },
  // 其他路由配置...
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

关键说明

  • 使用[routerLink]动态绑定路由值,实现Angular单页应用的无刷新跳转
  • 外部链接添加target="_blank"可在新窗口打开(根据需求可选)
  • routerLinkActive指令会自动给当前激活的菜单项添加active类,替换原来固定的active属性,实现激活状态的动态切换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:24:44