【发布时间】:2020-03-29 01:53:55
【问题描述】:
我正在使用 Angular Material 分页器在后端 API 的帮助下实现分页。当单击下一个按钮时,分页器的范围会更新,但一旦呈现列表,范围就会再次显示 1-10。这是我的代码:
getNext(event: PageEvent) {
this.applicationService.getNextApplications(event).subscribe((applications: PaginationModel) => {
this.dataSource.data = applications.data;
this.dataSource.data = this.dataSource.data.sort((a, b) => a.appName.localeCompare(b.appName));
setTimeout(() => {
this.dataSource.paginator.length = applications.totalCount;
this.limit = event.pageSize;
});
this.isDataReceivedByServer = true;
});
}
上述方法调用api并获取分页值
ngAfterViewInit() {
this.dataSource.sort = this.sort;
setTimeout(() => {
this.dataSource.paginator = this.paginator;
});
}
<mat-paginator [length]="totalLength" [pageSize]="limit" [pageSizeOptions]="[10, 25,50, 100]"
(page)="getNext($event)">
</mat-paginator>
我不明白为什么分页不能正常工作并且值被设置为其初始值。
【问题讨论】:
-
您能否提供最少的可复制代码,例如在 StackBlitz 中?据我所知,在使用正确的 Observable 初始化变量后,您需要在 dataSource 上使用
async管道。如果没有可复制的代码,我就不能正式。
标签: html angular pagination