从阵列/列表中删除所选项目



我正在使用ng多选下拉

<ng-multiselect-dropdown [placeholder]="'Choose workers'" [data]="allWorkers"
[(ngModel)]="workers.selectedItems" [settings]="dropdownSettings"
(onSelect)="onItemSelect($event)" (onSelectAll)="onSelectAll($event)">
</ng-multiselect-dropdown>
{{selectedItems}}

我的员工来自api

allWorkers: string[] = [];

在我的ngOnInit 中

this.workersService.getUsers().subscribe(
(val: any[]) => {
this.allWorkers = val.map(user => user.name + ' ' + user.city);
console.log(this.allWorkers);
}
)

一切都很好,但是。。如果我得到

onItemSelect(item: any) {
}

如果选择,我想从列表中删除值

所以如果我有输入:

  • 姓名
  • 姓氏2
  • 姓氏3

然后我选择姓氏2我只想选择

  • 姓名
  • 姓氏3

我试过这样的

onItemSelect(item: any) {
const index = this.allWorkers.indexOf(item, 0);
if (index > -1) {
this.allWorkers.splice(index, 1);
}
}

但不起作用。

您应该使用过滤方法:

this.allWorkers = this.allWorkers.filter(worker => worker !== item);

最新更新