UI-Grid Scroll / Pagination не работает после окончания прокрутки с сортировкой - PullRequest
0 голосов
/ 04 января 2019

После прокрутки до конца списка в UI-Grid и щелчка по сортируемому столбцу, нумерация страниц a.k.a. бесконечная прокрутка не работает, и таблица фиксируется только с набором строк. При дальнейшей прокрутке пагинация в UI-сетке не происходит. Похоже, бесконечная прокрутка отключается при достижении последней строки.

Я попытался сбросить сетку, и она не поддерживает проблему.

this.gridOptions.onRegisterApi = (gridApi) => {
  gridApi.infiniteScroll.on.needLoadMoreData(this.$scope, () => {
    if (this.Events.page < this.Events.totalPages) {
      this.Events.page++;
      this.gridApi.infiniteScroll.saveScrollPercentage();
      return this.gridApi.infiniteScroll.dataLoaded(false, true);
    }
  });
  this.gridApi = gridApi;
  this.getColumnSettings();
  this.gridApi.core.on.sortChanged(this.$scope, (grid, sortColumns) => {
      this.sortChanged(grid, sortColumns);
  });
};

Я вызываю эту функцию при изменении сортировки. т.е. если щелкнуть заголовок столбца,

public sortChanged(grid, sortColumns) {
  this.isSortEnabled = true;
  this.sortState.fieldName = "";
  this.Events = new EventsPage();
  this.gridSpinner = true;
  this.gridOptions.data = [];
  this.gridApi.infiniteScroll.dataLoaded();
  this.gridApi.infiniteScroll.resetScroll(false, false);
  if (sortColumns.length > 0) {
      this.setFieldName(sortColumns[0].field);
      if (sortColumns[0].sort.direction === "desc") {
          this.sortState.fieldName = "-" + this.sortState.fieldName;
      }
  }
  else {
    this.sortState.fieldName = "someSortParameter";
  }
  this.getEvents();
}

Должно произойти разбиение на страницы, и gridApi.infiniteScroll.on.needLoadMoreData () должен быть вызван после достижения конца списка и затем щелкнуть сортировку в заголовке столбца.

...