无法使用角材料正确地将数据表从一个表交换到另一个表

时间:2018-10-24 13:27:28

标签: angular angular-material

我使用带有一些数据行的角形材料制作了一个样本数据表。我还添加了一个空数据表,用于将行从第一个表转移到空表。

我能够将行从第一个表正确地移动到第二个表中。但是当我执行selectAll动作时,没有选择行。

但是,当我尝试一次选择一行并单击移到第一个表按钮时,该行将被删除,而不是转移到第一个表。

请访问我的sample app here

2 个答案:

答案 0 :(得分:0)

您不需要以下代码,它将从您的第一个集合中删除记录。

this.uncheckedData.splice(index, 1);

如果以后不想知道所选的行,我建议设置一个IsSelected属性

    this.selection.selected.forEach(item => {
          let index: number = this.uncheckedData.findIndex(d => d === item);
if(index){
          this.uncheckedData[index].IsSelected= true;
          this.checkedData.push(this.uncheckedData[index]);
          // this.uncheckedData.splice(index, 1);
}

        });

答案 1 :(得分:0)

我只是想为checkedDatasource做选择...

使用此代码替换“所有行选择”。

  /** Selects all rows if they are not all selected; otherwise clear selection. */
  masterToggle() {
    this.isAllSelected() ?
      this.selection.clear() :
      this.dataSource.data.forEach(row => this.selection.select(row));
    console.log(this.data);
  }

  masterCheckedToggle() {
    this.isAllCheckedSelected()?
      this.checkedSelection.clear() : 
      this.checkedDataSource.data.forEach(row => this.checkedSelection.select(row));
  }