我使用ngb下拉列表来显示任务的不同状态(“待办”、“进行中”、“完成”)。一切都很好,但有一个小问题仍然困扰着我。单击其中一个选项后,我希望下拉菜单关闭。目前它仍然开放。单击此菜单时如何关闭它?
正如你在下面看到的,我改变了两篇文章的状态,但下拉菜单仍然打开,这不是我真正想要的东西
模板编码
<div class="col-md-4 text-right padding-topright" style=" object-fit: cover;">
<div ngbDropdown class="d-inline-block">
<button class="btn btn-sm kbn-todo" *ngIf="post.task.status == 'to do'" id="dropdownDone" style=" color: white;"
ngbDropdownToggle>{{post.task.status}}</button>
<button class="btn btn-sm kbn-working" *ngIf="post.task.status == 'in progress'" id="dropdownDone" style=" color: white;"
ngbDropdownToggle>{{post.task.status}}</button>
<button class="btn btn-sm kbn-done" *ngIf="post.task.status == 'done'" id="dropdownDone" style=" color: white;"
ngbDropdownToggle>{{post.task.status}}</button>
<div ngbDropdownMenu aria-labelledby="dropdownToDo">
<button class="dropdown-item pumpkin-orange-bg" (click)="OnMarkTaskToDo(i, this.post._id)">To Do</button>
<button class="dropdown-item" (click)="OnMarkTaskInProgress(i, this.post._id)">In Progress</button>
<button class="dropdown-item" (click)="OnMarkTaskCompleted(i, this.post._id)">Done</button>
</div>
</div>
<p class="small font-weight-bold" style="margin-top: 5px" *ngIf="post.task?.due_to != 'Invalid date'"> due {{post.task?.due_to | date}}</p>
<!-- <p class="small font-weight-bold" style="margin-top: 5px"> status- {{post.task?.status}}</p> -->
</div>
3条答案
按热度按时间ekqde3dh1#
你可以这样做:
仔细看看:
并且:
我想有很多人会喜欢这个解决方案。
这是一个取自以下内容的示例:https://ng-bootstrap.github.io/#/components/dropdown/examples
h5qlskok2#
如果你的问题是关于CSS/HTML,你只需要在菜单容器中应用一些东西,比如
display: none
。但是你的问题是关于Angular的,你需要这样的东西:
这个过程可以以非常不同的方式完成,一切都取决于你想要如何工作,用动画,用全局事件单击菜单的“退出”,然后菜单消失,然后在...
我希望这些例子能让你的道路更加清晰。
mrwjdhj33#
使用autoClose指令防止关闭下拉列表