核心代码
<li nz-submenu [nzOpen]="rla1.isActive" #rla1="routerLinkActive" routerLinkActive>
<span title>用户管理</span>
<ul>
<li nz-menu-item [nzMatchRouter]="true"><a routerLink="/user/list">用户列表</a></li>
</ul>
</li>
<li nz-submenu [nzOpen]="rla2.isActive" #rla2="routerLinkActive" routerLinkActive>
<span title>用户权限</span>
<ul>
<li nz-menu-item [nzMatchRouter]="true"><a routerLink="/user/role">角色</a></li>
</ul>
</li>
重点说明
如果有多个li标签要声明多个模板变量来进行父结点刷新整个网页时自动展开,借助路由自带的isActive根据子节点选中来设置有
nz-submenu
属性的父结点展开属性[nzOpen]
,而[nzMatchRouter]
属性可以让有链接的带nz-menu-item
属性的菜单根据路由自动选中。
<li nz-menu-item [nzMatchRouter]="true">
也可以简写为
<li nz-menu-item nzMatchRouter>
参考资料
1.angular 官方文档 RouterLinkActive说明
onOpen属性:
nzMatchRouter属性: