У меня есть таблица, которая загружается с начальными данными и обновляется либо при взаимодействии с пользователем, либо автоматически из datasource
, обновляющегося динамически.Я использую ngAfterViewInit
для построения таблицы при загрузке и ngOnChanges
для обновления таблицы при изменении одного из моих @Inputs (matTable является частью компонента, отображающего таблицу на основе @Input
«настроек»).
Колонки "прыгают" вокруг, как будто они сортируются, когда я применяю ngOnChanges
.Я даже вижу стрелку на сортированном столбце по умолчанию, который переключается сам по себе.Без этого нет проблем, но таблица не будет обновляться.
компонент с таблицей:
ngAfterViewInit() {
... some special grouping of header is the user requested it ...
... extrapolate the columns from the @Input of the data passed ...
this.setSorting();
this.setPaging();
... set some vars such as if the table should sort and inject things like checkboxes ...
this.cdr.detectChanges();
}
ngOnChanges() {
this.setSorting();
this.setPaging();
}
setSorting() {
this.dataSource.sort = this.sort;
... additional sorting "rules" such as user defined sortingDataAccessor ...
}
setPaging() {
this.dataSource.paginator = this.paginator;
}