angualr 动态菜单 想配置路由直接带参数的问题

data: [
{
action_id: "21"
action_name: "待办任务"
action_type: "1"
action_url: "upcoming-tasks/overview"
auth_type: "2"
order: "1"
pid: "0"
{
action_id: "20"
action_name: "物业资源管理"
action_type: "1"
action_url: "0"
auth_type: "1"
order: "2"
pid: "0"
},
son: [
 {action_id: "22", action_name: "楼栋管理", action_type: "2", action_url: "building/list", order: "1"},
{action_id: "26", action_name: "房间管理", action_type: "2", action_url: "room/list?state=0", order: "2"}
]
}

菜单的数据结构是这样的
模板是这么渲染的

  <ng-container *ngFor="let item of menu">
          <li *ngIf="!item.son" nz-menu-item [nzSelected]="isMenuSelected(item)" (click)="getMenuAction(sonItem)" [routerLink]="['/' + item.action_url]">{{ item.action_name }}</li>
          <li *ngIf="item.son" nz-submenu>
            <div title>{{ item.action_name }}</div>
            <ul>
              <ng-container *ngFor="let sonItem of item.son">
                <li *ngIf="sonItem.action_type < 3" [nzSelected]="isMenuSelected(sonItem)" (click)="getMenuAction(sonItem)" nz-menu-item [routerLink]="['/' + sonItem.action_url]">{{ sonItem.action_name }}</li>
              </ng-container>
            </ul>
          </li>
        </ng-container>

clipboard.png
路径就会变成这样
这样我就不能从路由拿到state参数

clipboard.png

怎么能 实现这里的功能呢 如果直接从后端传过来path 带参数这样

阅读 2.3k
1 个回答

action_url 应该是放到[queryParams]里,不是放到[routerLink]里。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进