【发布时间】:2019-06-21 09:15:15
【问题描述】:
我有一个包含多级菜单的侧边栏菜单。如果我选择了子子菜单,我希望在刷新页面后选择器导航栏在子子菜单中保持激活状态。这可能吗?
这里有一些代码:
<ng-template ngFor let-item [ngForOf]="navItems">
<ng-template [ngIf]="item.divider">
<li class="nav-divider"></li>
</ng-template>
<ng-template [ngIf]="item.title">
<li class="nav-title">{{item.name | translate}}</li>
</ng-template>
<ng-template [ngIf]="item.children && item.childrenVisible && !item.title
&& (!item.children[0].children || item.children[0].children.length ==
0)">
<li [hidden]="itemHidden(item.keyPage) || !item.visible" class="nav-
item nav-dropdown" appNavDropdown>
<a class="nav-link nav-dropdown-toggle" href="#"
appNavDropdownToggle>
<i class="nav-icon {{item.icon}}"></i> {{ item.name |
translate }}
<span *ngIf="item.badge" [ngClass]="'badge badge-' +
item.badge.variant">{{ item.badge.text }}</span>
</a>
<ul class="nav-dropdown-items">
<ng-template ngFor let-subitem [ngForOf]="item.children">
<li [hidden]="itemHidden(subitem.keyPage) ||
!subitem.visible" class="nav-item">
<a class="nav-link" routerLinkActive="active" [routerLink]="
[subitem.url]">
<i class="nav-icon {{subitem.icon}}"></i> {{ subitem.name
| translate }}
<span *ngIf="subitem.badge" [ngClass]="'badge badge-' +
subitem.badge.variant">{{ subitem.badge.text }}</span>
</a>
</li>
</ng-template>
</ul>
</li>
</ng-template>
</ng-template>
public itemHidden(keyPage): boolean {
return false;
}
【问题讨论】:
-
你可以在你的component.ts中导入
router得到current url,然后使用ngclass="{ 'active': checkUrl(url) }"wherecheckUrl函数将它与当前路由进行比较 -
mmh.. 以及如何激活选定的子菜单并在刷新后打开并激活子菜单?就我而言,我无法激活任何孩子
标签: javascript css angular typescript