即使我单击 ng-multiselect-dropdown 中下拉菜单以外的任何其他位置,“onDropDownClose”事件也会一直被触发

shr*_*arg 3 html multi-select angular-material dropdown angular

我正在使用 ng-multiselect-dropdown,我必须根据所选列表加载数据。因此,我使用“onDropDownClose”事件来获取所有选定的值并根据选定的多个值加载其他数据。

   <ng-multiselect-dropdown
   [placeholder]="'Select Project'"
   [settings]="dropdownSettings"
   [data]="projects"
   [required]='requiredField' 
   [(ngModel)]="selectedItems"
   name="projectName"
   [ngClass]='setClass()'
  #projectName="ngModel"
  (onSelect)="onItemSelect($event)"
  (onSelectAll)="onSelectAll($event)" 
  (onDropDownClose)="saveFunction($event)">
Run Code Online (Sandbox Code Playgroud)

但是即使我总是在下拉菜单之外单击,关闭事件也会一直触发。有没有什么替代的办法呢?请帮忙。

Nan*_*rko 6

这应该在它们结束时修复,但在那之前你可以使用这个技巧:除了 (onDropDownClose) 之外,监听ng-multiselect-dropdown上的单击事件

 // this act as a differentiator between other calls(bug) and an intended call
 (click)="dropDownSelect = true".
Run Code Online (Sandbox Code Playgroud)

在您的组件中,声明变量并按如下方式使用它:

dropDownSelect = false;

saveFunction($event) {
 if (this.dropDownSelect) {
        // close the opening to subsequent actions 
        this.dropDownSelect = false;
        // Perform action;
 };
}
Run Code Online (Sandbox Code Playgroud)