我单击其中一项后,ngbdropdown 菜单未关闭

til*_*lly 4 html css angular

我使用 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>
Run Code Online (Sandbox Code Playgroud)

dpa*_*yas 8

你可以这样做:

<div class="d-inline-block" ngbDropdown #myDrop="ngbDropdown">
  <button class="btn btn-outline-primary mr-2" id="dropdownManual" ngbDropdownAnchor (focus)="myDrop.open()">Toggle dropdown</button>
  <div ngbDropdownMenu aria-labelledby="dropdownManual">
    <button ngbDropdownItem>Action - 1</button>
    <button ngbDropdownItem>Another Action</button>
    <button ngbDropdownItem>Something else is here</button>
  </div>
</div>


<button class="btn btn-outline-danger mr-2" (click)="myDrop.close();">Close from outside</button>
Run Code Online (Sandbox Code Playgroud)

仔细看看:

#myDrop="ngbDropdown"
Run Code Online (Sandbox Code Playgroud)

和:

(click)="myDrop.close();"
Run Code Online (Sandbox Code Playgroud)

我想有很多人想要这个解决方案。

这是取自以下示例:https ://ng-bootstrap.github.io/#/components/dropdown/examples