使用角度材料在角度2中的表之间传输选定的行

时间:2018-03-29 12:51:18

标签: angular angular-material

我使用角度材料在角度2中实现了一个简单的表格。

我已实现将所选行功能从第一个表传输到第二个表,并从第二个表中删除所选行。

当我从第一个表中选择行并单击按钮移动到第二个表时,所选行将被传输到第二个表但是没有从第一个表拼接,尽管我已拼接 transferSelectedRows()方法中的选定行。

请访问我的示例应用here ...

1 个答案:

答案 0 :(得分:1)

以下是您在组件方面需要进行的更改(请同时阅读评论)

组件方:

uncheckedData = this.data; // to maintain data for table 1

transferSelectedRows() {
    this.selection.selected.forEach(item => {
        let index: number = this.uncheckedData.findIndex(d => d === item);

        this.checkedData.push(this.uncheckedData[index]); // adding to table 2
        this.uncheckedData.splice(index,1); // remove data from table 1

    });

    this.selection = new SelectionModel<Element>(true, []);
    this.dataSource = new MatTableDataSource<Element>(this.uncheckedData);
    this.checkedDataSource = new MatTableDataSource<Element>(this.checkedData);
    this.dataSource.paginator = this.paginator;
    this.checkedDataSource.paginator = this.checkedpaginator;
}

WORKING DEMO