Пейджинг работал, когда данные были заполнены при загрузке. После включения функции ввода/поиска/поиска для заполнения ng-сетки я больше не вижу 5 элементов на странице, а следующие/предыдущие кнопки не работают. Я считаю, что изменение данных в gridOptions от "myData" до "source" разбило разбивку на страницы. Я пытаюсь передать $ scope.source в функцию setPagingData, но имеет проблемы. Как заставить пейджинг работать правильно?
$scope.setPagingData = function(data, page, pageSize) {
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
};
$scope.gridOptions = {
data: 'source',
enablePaging: true,
pagingOptions: $scope.pagingOptions,
showFooter: true
};
Здесь плункер
Хорошо, допустим, мы добавим такой кусок кода, чтобы использовать макетные данные в контроллере.
$scope.getPagedDataAsync = function(url, pageSize, page, searchText) {
setTimeout(function() {
var data;
/// this is new and required only for sake of plunker
if(typeof url !== 'string'){
$scope.setPagingData(url, page, pageSize);
}
Теперь становится ясно, что вы перепутали параметры сетки и предоставили в качестве исходных нефильтрованных данных.
$scope.gridOptions = {
data: 'source',//should be myData
enablePaging: true,
pagingOptions: $scope.pagingOptions,
showFooter: true
};