2015-11-29 22 views
8

Sto usando ng-table plugin per impaginare una tabella come questa:impaginazione con ng-tavolo in angolare

$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; 
        }); 
       } 
      }); 

Funnily ng-tavolo chiama la funzione getData() ogni volta che un utente fa clic su numeri di pagina. E colpisce di nuovo l'intera cosa e recupera tutti i record e li visualizza. Quindi la paginazione è essenzialmente inutile.

Ho bisogno di avere un'impaginazione lato client. È possibile con ng-table?

provato anche questo

$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; 
         } 
        }); 
       }); 

Stesso risultato con quanto sopra, come pure!

+1

puoi provare a separare la chiamata backed. È possibile eseguire la chiamata di back-end al di fuori della decodifica 'ng-table', recuperare i dati e archiviare da qualche parte e in' getData() 'è possibile restituire i dati memorizzati. –

+0

Vedere la mia modifica sopra – beNerd

+0

il tuo particolare su ng-table ?? – Aravind

risposta

1

Con l'ultima versione di NG-tavolo io alla fine con la seguente:

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 
      }); 
     }); 
    } 
} 

lato client impaginazione è grazie funziona correttamente a dataset.

Così dovrebbe essere qualcosa di simile per 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 
       }); 
      }); 
0

ng-tavolo ha molti problema. Ho cambiato il mio codice in jquery Datatable. Provalo.