【发布时间】:2019-07-20 21:38:08
【问题描述】:
我正在关注这篇文章https://medium.com/@alok.lko631/submenu-or-dropdown-menu-without-jquery-in-angular-2-4-5-6-using-only-bootstrap-and-custom-fd716db511be 用于折叠菜单和子菜单。我能够实现逻辑,但我面临的问题是我有多个菜单并且在单击另一个菜单时(已经打开的菜单没有折叠),而且每当我单击子菜单的任何值时主菜单正在折叠而不是路由..
Stackblitz 演示 https://stackblitz.com/edit/angular-y3ud5q
submenu.component.html
<aside class="main-sidebar">
<section class="sidebar">
<ul class="sidebar-menu tree" data-widget="tree">
<li checkToggle *ngFor="let data of listsvalue ">
<a>
<span>{{data.value}}</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="nav submenu" data-widget="tree">
<li *ngFor="let test of data.value ">
<a>
<span>{{test.value}}</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
</li>
</ul>
</li>
</ul>
</section>
</aside>
submenu.directive.ts
@Directive({
selector: '[checkToggle]'
})
export class SidebarLeftToggleDirective {
@Input('checkToggle') partner;
/**
* @method constructor
* @param elementRef [description]
*/
constructor(public elementRef: ElementRef) { }
@HostBinding("class.active") isOpen = false;
@HostListener("click") toggleOpen($event) {
this.isOpen = !this.isOpen;
}
}
submenu.component.cs
.submenu li {
padding-left:15px;
}
ul li .submenu {
display: none;
}
ul li.active .submenu {
display: block;
list-style: none;
}
【问题讨论】:
-
这里是 stackbiltz 演示 stackblitz.com/edit/angular-y3ud5q。我不确定我的方法是否正确。我有一个要求,我需要一个菜单和子菜单,并且菜单应该在点击时折叠
-
是的..而且当我们点击子菜单时..它不应该折叠..子菜单值有一个路由链接,它将路由 onclick..
-
@Vega 好运吗?
-
是的..但是当我们在显示子菜单后单击相同的菜单时..菜单没有折叠...
标签: html css angular typescript twitter-bootstrap-3