Html 分页在7中不起作用。(我使用角材料)

Html 分页在7中不起作用。(我使用角材料),html,typescript,angular-material,angular7,Html,Typescript,Angular Material,Angular7,我需要在客户端实现分页。从后面,我收到以卡片形式带来的待办事项。我决定连接mat paginator,但遇到了问题。我将待办事项的数量传递给了[length]=“length”,但是将页面和总数量拆分为几个部分并不起作用,而是将它们显示在不同的页面上。例如,我现在有13个待办事项(可能还有更多),我需要在一页上显示4个待办事项。4然后是第二个,依此类推。 这是我的密码 component.html ... <div class="tasks-list" > <mat-c

我需要在客户端实现分页。从后面,我收到以卡片形式带来的待办事项。我决定连接mat paginator,但遇到了问题。我将待办事项的数量传递给了[length]=“length”,但是将页面和总数量拆分为几个部分并不起作用,而是将它们显示在不同的页面上。例如,我现在有13个待办事项(可能还有更多),我需要在一页上显示4个待办事项。4然后是第二个,依此类推。 这是我的密码

component.html

...
<div class="tasks-list" >
    <mat-card class="task-card" *ngFor="let task of tasks">
        <mat-card-header>
            <mat-card-title>
/////////some code////////////
 </mat-card>
</div>

<mat-paginator [length]="length"
          [pageSize]="4"
          [pageSizeOptions]="[4, 8, 12]">
</mat-paginator>

我不知道下一步该怎么做才能使它起作用。无论在哪里,我主要写如何在表中打开分页,但我没有表。如果行添加“async”,则它将不起作用。

分页器使用表数据源

所有分页工作都是在迭代器方法中完成的。此方法计算skip and take并将其分配给卡列表的数据源

视图:


{{task}}
组成部分:

export class PaginatorOverviewExample implements OnInit {
  public tasks: any[];

  public dataSource: any;
  public pageSize = 1;
  public currentPage = 0;
  public totalSize = 0;

  @ViewChild(MatPaginator) paginator: MatPaginator;

  ngOnInit() { this.getTasks(); }

  getTasks() {
    // Replace with HTTP call
    var data = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];
    this.dataSource = new MatTableDataSource<any>(data);
    this.dataSource.paginator = this.paginator;
    this.tasks = data;
    this.totalSize = this.tasks.length;
    this.iterator(); 
  }

  handlePage(event?: PageEvent) {
    this.currentPage = event.pageIndex;
    this.pageSize = event.pageSize;
    this.iterator();
  }

  private iterator() {
    const end = (this.currentPage + 1) * this.pageSize;
    const start = this.currentPage * this.pageSize;
    const part = this.tasks.slice(start, end);
    this.dataSource = part;
  }
}
导出类PaginatorOverview示例实现OnInit{
公共任务:任何[];
公共数据源:任何;
公共页面大小=1;
公共当前页面=0;
公共总大小=0;
@ViewChild(MatPaginator)分页器:MatPaginator;
ngOnInit(){this.getTasks();}
getTasks(){
//替换为HTTP调用
风险值数据=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”];
this.dataSource=新MatTableDataSource(数据);
this.dataSource.paginator=this.paginator;
这个任务=数据;
this.totalSize=this.tasks.length;
这是一个.iterator();
}
handlePage(事件?:PageEvent){
this.currentPage=event.pageIndex;
this.pageSize=event.pageSize;
这是一个.iterator();
}
专用迭代器(){
const end=(this.currentPage+1)*this.pageSize;
const start=this.currentPage*this.pageSize;
const part=this.tasks.slice(开始、结束);
this.dataSource=part;
}
}
<div class="tasks-list">
    <mat-card class="task-card" *ngFor="let task of dataSource">
        <mat-card-header>
            <mat-card-title>
        {{task}}
            </mat-card-title>
        </mat-card-header>
    </mat-card>
</div>

<mat-paginator #paginator [pageSize]="pageSize" [pageSizeOptions]="[1, 10, 20]" [showFirstLastButtons]="true" [length]="totalSize"
    [pageIndex]="currentPage" (page)="pageEvent = handlePage($event)">
</mat-paginator>
export class PaginatorOverviewExample implements OnInit {
  public tasks: any[];

  public dataSource: any;
  public pageSize = 1;
  public currentPage = 0;
  public totalSize = 0;

  @ViewChild(MatPaginator) paginator: MatPaginator;

  ngOnInit() { this.getTasks(); }

  getTasks() {
    // Replace with HTTP call
    var data = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];
    this.dataSource = new MatTableDataSource<any>(data);
    this.dataSource.paginator = this.paginator;
    this.tasks = data;
    this.totalSize = this.tasks.length;
    this.iterator(); 
  }

  handlePage(event?: PageEvent) {
    this.currentPage = event.pageIndex;
    this.pageSize = event.pageSize;
    this.iterator();
  }

  private iterator() {
    const end = (this.currentPage + 1) * this.pageSize;
    const start = this.currentPage * this.pageSize;
    const part = this.tasks.slice(start, end);
    this.dataSource = part;
  }
}