材料数据表未显示更新数据

时间:2018-11-23 08:15:34

标签: angular datatable angular-material onchange

更改输入数据后,我的材料数据表不显示/更新。仅当我从按钮调用刷新功能时。在ngOnChanges内部,刷新也不起作用。 除了通过按钮调用刷新功能外,如何更新表的视图?

export interface VariableObject {
  name: string;
  node: string;
  status: string;
  subscriber: any;
  type: string;
  value: any;
}

组件

@Input() data: VariableObject[];
displayedColumns: string[] = ['name', 'type', 'status', 'value'];
dataSource = new MatTableDataSource<VariableObject>();

ngOnChanges(changes: SimpleChanges): void {
  this.dataSource = new MatTableDataSource<VariableObject>(this.data); }

refresh() {
  this.dataSource = new MatTableDataSource<VariableObject>(this.data); }

1 个答案:

答案 0 :(得分:0)

据我所知,Angular无法识别对象是否已更改。它只能侦听变量和对象属性的变化。

也许您可以侦听其他变量,并在数据更改后对其进行触发

以下是一种解决方法:

this.ObjectName = Object.assign({}, this.ObjectName);

这样,Angular会检测到更改并触发ngOnChanges。您将不得不在父组件中重新分配对象。