Angular 具有动态页面大小的mat表中的ngx分页器

Angular 具有动态页面大小的mat表中的ngx分页器,angular,pagination,angular-material,mat-table,Angular,Pagination,Angular Material,Mat Table,我使用mat table来表示数据,我需要使用pageSize中的变量对该数据进行分页,每次执行paginator控件的事件(pageChange)时,该变量都必须更改。当该变量达到pageSize的数组位置时,问题就会发生 在我的html中,定义如下: <table mat-table [dataSource]='dataSource | paginate: { itemsPerPage: sizePaginator, currentPage: p, totalItems: dataTa

我使用mat table来表示数据,我需要使用pageSize中的变量对该数据进行分页,每次执行paginator控件的事件(pageChange)时,该变量都必须更改。当该变量达到pageSize的数组位置时,问题就会发生 在我的html中,定义如下:

<table mat-table [dataSource]='dataSource | paginate: { itemsPerPage: sizePaginator, currentPage: p, totalItems: dataTable.length}'></table>
<pagination-controls  (pageChange)="p = $event;paginate(p)" [maxSize]='paginatorObjects.length'
                     previousLabel="Anterior" directionLinks='true' (pageBoundsCorrection)="paginate($event)" directionLinks='true'
                     nextLabel="Siguiente"></pagination-controls>

我在内存中存储的总数据是300条记录,分页的结构如下 [15,15,15,15,65,21,21,21,21,91],当我的curren索引为5且pageSize为65时,“下一步”按钮消失且不允许继续,就好像数据已经达到峰值

paginate(event: any) {
/**Event back*/
if (this.indexAcumulado > event){
  for (let i = this.indexAcumulado-1; i >= event; i--){
    this.sizeAcumulado -= this.paginatorObjects[i].cantidad;
  }
}else {     /**Event next*/
  this.sizeAcumulado = 0;
  for (let i = 0; i <= event-1; i++){
    this.sizeAcumulado += this.paginatorObjects[i].cantidad;
  }
}
this.sizePaginator = this.paginatorObjects[event-1].cantidad;
this.dataSource = this.dataTable.slice(this.sizeAcumulado - this.sizePaginator, this.sizeAcumulado);
this.rowSpans = this.rowSpanComputer.compute(this.dataSource, this.allButLastColumnNames);
this.indexAcumulado = event;
paginate(事件:任意){
/**事件反馈*/
if(this.indexacumerado>事件){
for(设i=this.indexacumerado-1;i>=event;i--){
this.sizeAcumulado-=this.paginatorObjects[i].cantidad;
}
}else{/**下一个事件*/
this.sizeAcumulado=0;
for(设i=0;i