pagination - Angular HttpClient 数据源分页器不起作用
问题描述
我有以下实现(Angular 6)。
数据被很好地提取并按预期显示在表格中。但是分页器不起作用。
见下文:
@ViewChild(MatPaginator) paginator: MatPaginator;
然后在构造函数中:
this.dataSource = new MatTableDataSource([]);
this.requestHttpService.getStuff()
.subscribe(data => {
this.results = data;
this.dataSource = data;
});
然后
ngAfterViewInit() {
this.dataSource.paginator = this.paginator;
}
最后在 HTML 中:
<mat-paginator #paginator
[length]="100"
[pageSize]="10"
[pageSizeOptions]="[5, 10, 25, 100]">
</mat-paginator>
我不确定这段代码有什么问题,但这些分页功能似乎都不起作用。我错过了什么。
解决方案
原来数据源加载必须从
ngAfterViewInit() {
}
...并且实际的分页器分配必须按照此处的建议包含在 SetTimeout() 函数中:
setTimeout(() => {
this.dataSource = new MatTableDataSource(this.results);
this.dataSource.paginator = this.paginator;
});
推荐阅读
- html - 如何在电子邮件 html 中为不同的电子邮件客户端(如 Outlook gmail)使用 ico-moon 图标
- kubernetes - eclipse_che在kubernetes多用户模式下部署失败
- google-apps-script - 使用 getR(2,"firstname") 获取 Range
- python - 将边距设置为 true 时,Pandas pivot_table 会引发关键错误
- windows - PyCharm“无法打开本地终端”“无法启动 cmd.exe”?
- python - Json 到 csv 的转换在 python 中的大文件上花费了非常多的时间
- php - Laravel 5.2 Eloquent 混合相似的列名
- google-signin - 任何人都有使用 Google 登录的赛普拉斯示例
- d3.js - 将 d3 圆环图从 v4 更新到 v5
- mysql - 如何获取SQL中2个表中所有记录的AVG