2015-11-29 9 views
8

Używam ng-table wtyczki do paginate tabelę tak:paginacja z NG-tabeli w kątowym

$scope.ngtableParams = new ngTableParams({}, { 
       counts:false, 
       getData: function(params) { 
        return $http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id).then(function(data) { 
         params.total(data.data.length); 
         return data.data; 
        }); 
       } 
      }); 

Zabawne ng-table wywołuje funkcję getData() za każdym razem, gdy użytkownik kliknie numerami stron. I znów uderza w całą sprawę, pobiera wszystkie rekordy i wyświetla je. Więc paginacja jest zasadniczo bezużyteczna.

Potrzebuję stronicowania po stronie klienta. Czy to możliwe z ng-table?

Tried to także

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id) 
       .success(function(data){ 
        $scope.ngtableParams = new ngTableParams({count:5}, { 
         counts:[], 
         paginationMaxBlocks: 13, 
         paginationMinBlocks: 2, 
         total:data.length, 
         getData: function(params) { 
          return data; 
         } 
        }); 
       }); 

sam wynik z powyższym, jak również!

+1

możesz spróbować oddzielić połączenie z kopii zapasowej. Możesz wykonać wywołanie backendu poza dekompilacją 'ng-table', pobrać dane i zapisać gdzieś iw' getData() 'możesz zwrócić zapisane dane. –

+0

Zobacz moją edycję powyżej – beNerd

+0

Twój szczególny temat ng-table ?? – Aravind

Odpowiedz

1

Dzięki najnowszej wersji NG-tabeli I skończyć przy użyciu następujących:

function IssueCtrl(NgTableParams, IssueService) { 
    var self = this; 

    loadTable(); 

    function loadTable() { 
     IssueService.getIssues().then(function (issues) { 
      self.tableParams = new NgTableParams({ 
       page: 1, 
       count: 5 
      }, { 
       dataset: issues // might be data instead of dataset depending on ng-table version 
      }); 
     }); 
    } 
} 

stronicowanie po stronie klienta jest właściwie dzięki pracy do dataset.

Tak powinno być coś takiego dla OP:

$http.get($rootScope.app.authApi + 'questions/' + selectedSubtopic.id) 
      .success(function(result){ 
       $scope.ngtableParams = new ngTableParams({count:5}, { 
        counts:[], 
        paginationMaxBlocks: 13, 
        paginationMinBlocks: 2, 
        total:result.length, 
        dataset: result // might be data instead of dataset depending on ng-table version 
       }); 
      });