繁体   English   中英

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

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

我有一个多选下拉菜单,其中包含许多可供选择的项目。 截至目前,当我选择单个项目时,该项目将传递给Onselect事件,并根据条件将来自另一个数组newArrayAfterProjectFilter的相应数据推送到myDataList ,如下所示OnselectErp 根据我的要求当我尝试在下拉列表中选择第二个项目时,只有第二个项目被推送到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)
  }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM