如何为 ng-multiselect-dropdown 的 onselect 事件传递多个项目

How to pass multiple items for onselect event for ng-multiselect-dropdown

我有一个多 select 下拉列表,其中有许多项目 select。截至目前,当我 select 单个项目时,该项目被传递给 Onselect 事件,并根据条件将来自另一个数组 newArrayAfterProjectFilter 的相应数据推送到 myDataList ,如下所示在 OnselectErp。根据我的要求,当我尝试 select 下拉列表中的第二个项目时,只有第二个项目被推送到 OnselectErp 函数,而不是两个项目(第一个和第二个)。

如何正确执行此操作?

<ng-multiselect-dropdown *ngIf="showDropDown"
 [placeholder]="'Erp Rfq Number'" [data]="dropdown_Erp"
 [settings]="dropdownSettings" (onSelect)="OnselectErp($event)">
</ng-multiselect-dropdown>
OnselectErp(item: any) {
    this.myDataList = [];
    this.newArrayAfterProjectFilter.forEach(element => {
      if (element.properties.map.aclrq_rfqNum == item.item_text) {
        this.myDataList.push(element);
      }
    });
    console.log(this.myDataList)
  }

我需要更多详细信息才能重现您的问题并为您提供完整的解决方案。 但您可以尝试以下操作:

在HTML中添加[(ngModel)]="selectedItems",在对应的component.ts中添加selectedItems属性

<ng-multiselect-dropdown *ngIf="showDropDown"
 [placeholder]="'Erp Rfq Number'" [data]="dropdown_Erp"
 [settings]="dropdownSettings" (onSelect)="OnselectErp($event)" 
 [(ngModel)]="selectedItems">
</ng-multiselect-dropdown>

在 UI 上创建一个按钮并点击调用以下函数:

filter() {
     this.myDataList = this.newArrayAfterProjectFilter.filter(element => 
      this.selectedItems.some(item=> element.properties.map.aclrq_rfqNum == item.item_text));
    console.log(this.myDataList)
  }

正如我所说,我还没有尝试过这个,但应该可以在没有或最小变化的情况下工作。