[英]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.