【发布时间】:2016-11-13 11:43:46
【问题描述】:
我在这里有一个使用 Angular 2、TypeScript 和 Material Design 组件的有效 sidenav 演示。在 sidenav 上有一个 UL,UL 中的 Sites 和 Users 锚点展开以显示它们自己的子列表。
这是 sidenav 的 HTML:
<md-sidenav #start mode="over" class="sideDrawer">
<ul class="sidenav">
<li><a>Dashboard</a></li>
<li>
<a (click)="sideNavClick()">Sites</a>
<div>
<ul *ngIf="clickedSites" class="sublist">
<li><a (click)='sideNavAlert()'>All Sites</a></li>
<li><a>Site Groups</a></li>
</ul>
</div>
</li>
<li>
<a (click)="sideNavClickUser()">Users</a>
<div>
<ul *ngIf="clickedUsers" class="sublist">
<li><a (click)="sideNavAlert()" >Add User</a></li>
<li><a>Edit User</a></li>
<li><a>Remove User</a></li>
</ul>
</div>
</li>
<li>
<a>Lights</a>
</li>
<li><a>Settings</a></li>
</ul>
</md-sidenav>
这是我的解决方案的一个非常简单的实现,但我真正的 sidenav 将在 sidenav 中有更多导航选项,并且所有的子节点都需要显示或隐藏。但是,我只希望一次显示一个子列表。我不想为每个子列表都有一个布尔值并使用 *ngIf 来显示和隐藏它们,并在组件中有一些翻转布尔值的主函数。我希望有更精简的东西,但我不知道 Angular 2 有什么可能。我知道我可能会做一个 CSS 解决方案,但我认为这也会迫使我向每个单独的列表添加和删除类,就像在我的其他潜在解决方案中翻转每个单独列表的布尔值一样。
有什么想法/提示吗?
【问题讨论】:
标签: typescript angular angular-material