首页 > 解决方案 > 如何在Angular中一次删除所有选定的行?

问题描述

我想编写一个函数来一次删除所有选定的 Id。

我有一个删除一个 ID 的删除功能onDeleteHandler(id: number)

  onDeleteHandler(id: number) {
    if (!confirm('Are you sure?')) {
      return;
    }
     this.service.delete(id).toPromise(); // this works perfectly
  }

现在我想用这个函数来删除所有的 Ids 函数。

  deleteMultiSelected() {

    const idArr = this.selectedItems.map(i => i.id);  // this is something like [id1, id2, id3]

    // NEED A CODE FOR DELETE ALL AT ONCE using onDeleteHandler(id: number) method

  }

我怎样才能做到这一点?

我必须使用此onDeleteHandler(id: number)方法删除所有选定的 ID

标签: angulartypescript

解决方案


您可以使用forkJoin同时拨打多个电话。因此,将您的项目数组映射到可观察的数组,然后像这样 forkJoin:


deleteMultiSelected() {
  const deletes = this.selectedItems.map(item => this.service.delete(item.id));
  
  forkJoin(deletes).subscribe();
}

推荐阅读