Я хочу сохранить настройки сортировки моей таблицы после перезагрузки данных.Я пытаюсь сделать это, вызывая сортировку в коде после вызова прокси:
this.keptSort = 'name',
this.keptSortDirection = 'desc',
this.someProxy
.getTableContent(this.id)
.subscribe((res) => {
const rows = res.map((r) => new RowMode(r));
this.dataSource = new MatTableDataSource(rows);
this.selectRowsWithId(this.selection);
if (this.sort) {
this.sort.sort(<MatSortable>{
id: this.keptSort,
start: this.keptSortDirection});
}
});
Моя таблица в html выглядит так:
<table
mat-table
matSort
[dataSource]="dataSource"
matSortActive="creationDate"
matSortDirection="desc" >
...</table>
Это, однако, приводит к ошибке:
Ошибка: ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после его проверки.Предыдущее значение: 'active: undefined'.Текущее значение: 'active: false'.Кажется, что представление было создано после того, как его родитель и дочерние элементы были грязно проверены.
Дополнительная информация, у меня также есть установщик MatSort:
@ViewChild(MatSort) set matSort(ms: MatSort) {
if (ms) {
this.sort = ms;
this.setDataSourceAttributes();
}
}
и
setDataSourceAttributes() {
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
Любые идеи или указатели направления, как я могу исправитьэтот?