更改输入数据后,我的材料数据表不显示/更新。仅当我从按钮调用刷新功能时。在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); }
答案 0 :(得分:0)
据我所知,Angular无法识别对象是否已更改。它只能侦听变量和对象属性的变化。
也许您可以侦听其他变量,并在数据更改后对其进行触发
以下是一种解决方法:
this.ObjectName = Object.assign({}, this.ObjectName);
这样,Angular会检测到更改并触发ngOnChanges
。您将不得不在父组件中重新分配对象。