我的问题类似于下面的另一个SO问题,但我想更改嵌套Bootstrap dropdown with Angular 6
我需要菜单关闭时,有人点击下拉菜单中的任何地方,除了嵌套的链接。如果嵌套的链接被点击,我希望它遵循的链接。奖金点,让它遵循的链接 * 和 * 关闭下拉菜单。
我可以让它在点击时关闭任何地方,或者它保持打开状态,但遵循链接。
我使用的是ng-bootstrap 12.0.0。据我所知,这是AngularJS。
<div class="container">
<!-- Content here -->
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu">
<div class="dropdown-item" href="#">Notification Text1 <a href="some-link">Nested Link1</a></div>
<div class="dropdown-item" href="#">Notification Text1 <a href="some-link">Nested Link1</a></div>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div
1条答案
按热度按时间shyt4zoc1#
在ng-bootstrap中有一个“属性”“autoclose”,你可以给予值“outside”并手动关闭所有其他按钮中的菜单。
参见stackblitz
当我们在Angular中使用bootstrap时,我们需要添加bootstrap和@types/bootstrap
然后我们可以从bootstrap导入下拉列表
我们可以有一个这样的.html(请参阅模板引用变量“#menu”)和重要不要忘记我们的菜单中的属性
data-bs-toggle="dropdown"
。在主菜单中,我们添加了
data-bs-auto-close="outside"
,因此只有在单击外部时才关闭现在,我们使用viewChild获取“菜单”,并在ngAtferViewInit中存储下拉列表
最后我们写一个函数close
然后加上as .css之类的
以使具有子菜单的div具有全宽
现在只需向h
<li class="nav-item dropdown"
添加对函数的调用参见stackblitz