Таблица данных материала не показывает обновленные данные - PullRequest
0 голосов
/ 23 ноября 2018

Моя таблица данных материала не отображается / не обновляется при изменении входных данных.Только если я вызываю функцию обновления с кнопки.Внутри 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 голосов
/ 23 ноября 2018

Насколько я знаю, Angular не распознает, изменился ли объект.Он может только слушать изменения переменных и (возможно) свойств объектов.

Возможно, вы могли бы прослушивать другую переменную, вызывая событие, когда оно изменяется при изменении данных

Это обходной путь:

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

Таким образом, Angular обнаруживает изменение и запускает ngOnChanges.Вам придется переназначить свой объект в родительском компоненте.

...