删除另一行后未显示角垫表添加的行

时间:2020-03-14 16:58:56

标签: angular

我已经创建了一个表,用户可以通过推入添加行

dataSource = new MatTableDataSource(this.ELEMENT_DATA);
this.ELEMENT_DATA.push(...);
this.table.renderRows();

并删除行(通过过滤数据源),这些操作就可以正常工作。

this.dataSource.data = this.dataSource.data
      .filter(i => i !== elm)
      .map((i, idx) => (i.position = (idx + 1), i));

在删除一行并添加另一行之后,ELEMENT_DATA数组会获取该项目,而表不会显示该项目。 谢谢。

1 个答案:

答案 0 :(得分:0)

表检测更改策略为ChangeDetectionStrategy.OnPush,因此对于显示新项,您需要更改数组引用

您的删除功能将返回带有已过滤数据数组的新数组。我认为您的add函数只是执行array.push(newItem)

,因此您可以通过这种方式添加新项目。这应该适合您的情况。

this.dataSource.data = [...this.dataSource.data, newItem]