我有一个带有排序和分页器的垫子桌子。我的组件看起来像这样,如ngOnInit所示,我注册了一个事件处理程序,该事件处理程序调用populateAlertTableSource功能。 调用此函数时,确实会刷新表中的数据,但不会刷新数据,除非我将鼠标悬停在表上(或单击分页器)。当我从表格中删除一行时也会发生这种情况-该行不会消失并且分页器不会刷新,直到我将鼠标悬停在表格上(或单击分页器)。当我手动在其声明中填充数据源时,似乎没有发生,并且Pagiantor当场进行了更新。
navigate()
答案 0 :(得分:0)
很难说出没有堆叠闪电或类似情况的确切问题是什么。
但是我确实记得前一段时间有一个类似的问题,对我来说解决的问题是在模板的length
元素上显式设置mat-paginator
。
在您的组件中:
public _alertsDataSourceLength: number;
...
populateAlertTableSource(message: any) {
this.AlertsCollection = message
this._alertsDataSourceLength = this.AlertsCollection.length; // new
this.alertsDataSource.data = this.AlertsCollection;
this.alertsDataSource.paginator = this.paginator;
this.alertsDataSource.sort = this.alertSort;
this.alertsTable.renderRows();
this.refresh();
}
在您的模板中:
<!-- set the length explicitly -->
<mat-paginator [pageSize]="10"
[length]="_alertsDataSourceLength"
[pageSizeOptions]="[5, 10, 20]"
[showFirstLastButtons]="true">
</mat-paginator>