選択する項目が多数ある複数選択ドロップダウンがあります。現在のところ、単一のアイテムを選択すると、そのアイテムはOnselect
イベントに渡され、条件に基づいて、別の配列からのそれぞれのデータが以下に示すようにnewArrayAfterProjectFilter
プッシュさmyDataList
れますOnselectErp
。要件に応じてドロップダウンで2番目のアイテムを選択しようとすると、2番目のアイテムのみがOnselectErp
機能するようにプッシュされ、両方のアイテム(1番目と2番目)はプッシュされません。
これを正しく行う方法は?
<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)
}
問題を再現し、完全な解決策を提供するには、詳細が必要です。ただし、以下を試すことができます。
[(ngModel)]="selectedItems"
HTMLを追加しselectedItems
、対応するcomponent.tsにプロパティを追加します
<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)
}
私が言ったように、私はこれを試していませんが、変更なしまたは最小限の変更で動作するはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加