我正在使用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);