Я не уверен, является ли это официальным способом (и может быть не в соответствии с этим вопросом ), но установив для свойства sort
значение MatTableDataSource
, равное нулю, перед переназначением предыдущего MatSort
, кажется, делает трюк
@ViewChild(MatSort, {static: true}) sort: MatSort;
//Change table data here...
//Trigger sort manually
this.dataSource.sort = null;
this.dataSource.sort = this.sort;
Демонстрация Stackblitz
Примечание : angular материал не ищет изменений в базовые источники, в соответствии с этой проблемой github комментарий
При передаче массива в таблицу он будет перерисовываться только при изменении ссылки на массив, поскольку он основан на Принцип использования неизменяемого массива данных.
Простой обходной путь - переназначить свойство источника data
, когда базовые данные изменяются
this.datasource.data = [...ELEMENT_DATA];//For your stackblitz