如何禁用在 ngx-datatable 中滚动时调用的 'page' 输出事件?

How to disable 'page' Output event being called on Scroll in ngx-datatable?

我不想无限滚动分页。相反,我只想通过单击页脚中的页码来调用分页。我正在使用服务器端分页。因此,在每次滚动时触发 'page' 事件会导致我的分页 api 触发太多我的服务器无法处理的请求。

基本上如何禁用服务器端分页的无限滚动?

我能够通过处理 ngx-datatable 中的(滚动)输出来解决这个问题。这个想法是在调用滚动事件时使用一个标志来抑制分页,然后在超时后再次启用它。像这样。

模板

<ngx-datatable (page)="doPaging($event)" (scroll)="handleScroll()">...</ngx-datatable>

在你的组件中

scrollTimeout: any;
suppressPaging: boolean = false;
doPagining() {
  if (!this.suppressPagining) {
    //do paging
  }
}

handleScroll() {
   this.suppressPagining = true;

   if (this.scrollTimeout) {
        celarTimeout(this.scrollTimeout);
   }

  this.scrollTimeout = setTimeout(() => {
     this.suppressPagining = false;
  }, 100)
}

[虚拟化]="false" 解决了我的问题