如何设置角度材料分页器的长度道具

Alb*_*ert 4 pagination angular-material angular

这就是我的mat-paginator样子:

<mat-paginator [pageSizeOptions]="pageSizeOptions" [length]="100"></mat-paginator>
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试实现一个典型的分页想法:服务器不返回所有数据,它返回其中的一部分,然后当打开新页面时,它会返回另一部分数据。为了做到这一点,我需要让分页器知道数据库中有多少项,也就是说,我需要向它提供 prop length

我尝试以多种方式设置它,直接在上面的行中或在我发出 get 请求的方法内部。像这样:

this.paginator.length = 100;
Run Code Online (Sandbox Code Playgroud)

事实上,长度应该来自服务器,但目前出于调试目的,我只是将其硬编码。

    this.dataSourceService.findAll().subscribe(
      records => {
        this.paginator.length = 100;

        this.dataSource.data = records.map(
          record => new Record().deserialize(record)
        )
      }
    )
Run Code Online (Sandbox Code Playgroud)

我在客户端上获得的长度值仍然等于我在服务器响应中获得的数组中包含的项目数。

我做错了什么以及为什么长度值没有设置为 100。

编辑

好吧,这是一些更相关的代码。

在组件内部我执行以下操作:

dataSource = new MatTableDataSource<Record>();
pageSizeOptions: number[] = [5, 10, 20];
Run Code Online (Sandbox Code Playgroud)

里面OnInit()我还有以下行:this.dataSource.paginator = this.paginator;

mof*_*tje 6

对于遇到与我相同问题的其他人:

如果您已dataSource连接到paginator,它将覆盖您设置的任何值。

删除这个:


this.dataSource.paginator = this.paginator;

Run Code Online (Sandbox Code Playgroud)