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

时间:2020-08-24 09:29:26

标签: javascript angular typescript

我正在使用ng-multiselect-dropdown

 <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

,然后选择Name Surname2 我只想选择

  • 姓氏
  • 姓氏3

我尝试过类似的事情

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

但是不起作用。

1 个答案:

答案 0 :(得分:5)

您应该使用过滤器方法:

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