Angular ui-grid - как узнать, нахожусь ли я в последней строке

Я использую последнюю версию Angular UI Grid и не могу определить, находится ли фокус в данный момент на последняя отображаемая строка сетки.

Массив данных не отсортирован так, как на экране, поэтому я не могу использовать эту информацию. Я читал, что кеш видимых строк должен быть отсортирован так, как он отображается на экране, но я думаю, что это может быть связано со старой ng-grid. В любом случае, если я посмотрю на gridApi.core.getVisibleRows(myGrid), у него все еще есть сортировка в соответствии с необработанными данными.

В настоящее время я обрабатываю событие gridApi.cellNav.on.navigate(newRowCol, oldRowCol). Я вижу столбец и строку, на которых фокусируется пользователь, но не вижу никаких значений в этом событии (или где-либо еще), которые можно использовать, чтобы определить, является ли строка последней отображаемой на экране. Буду признателен за любые советы!!


person S. Baggy    schedule 04.11.2014    source источник


Ответы (1)


Вы должны использовать gridApi.grid.renderContainers.body.visibleRowCache, который представляет собой массив, отсортированный по тому, как строки видны на экране. Затем вы можете проверить, является ли строка последней строкой, например:

oldRowCol.row.uid == $scope.gridApi.grid.renderContainers.body.visibleRowCache[$scope.gridApi.grid.renderContainers.body.visibleRowCache.length-1].uid
person Bruno Deprez    schedule 14.11.2014
comment
gridApi.grid.renderContainers.body.renderedRows? Это тоже должно работать - person Srikanth Babu K; 08.05.2018