2017-04-07 4 views
0
pagination

Eh bien, je suis en train de générer un ngtable, mais cela génère pas le bon pagination, je suis les exemples mais ne fonctionne pas de pagination pour moi, quel est le problème:générer avec ngTables

function usersMainCtrl($scope, NgTableParams, usersFactory) 
{ 
    var tableData = [] 

    //Table configuration 
    $scope.tableParams = new NgTableParams({ 
     page: 1, // show first page 
     count: 5 // count per page 
    },{ 
     //total:tableData.length, 
     filterDelay: 300, 
     //Returns the data for rendering 
     getData : function(params) { 
      return usersFactory.getUsers(params.url()).then(function(response) { 
       console.log(response); 
       console.log(params); 
       params.total(response.data.length); 
       return response.data; 

      }); 
     } 
    }); 
} 

enter image description here

Répondre

0

Je vais commencer en disant que je suis un peu d'un débutant avec ngTable moi-même, mais je crois que la question est quelque chose à voir avec le fait que vous obtenez des données du côté serveur.

Moi aussi, je cherchais à obtenir ce travail, et je suivais l'exemple ngTables ici: http://ng-table.com/#/intro/demo-real-world

Ce qui est pas clair dans cet exemple cependant, est que la mise en page est gérée par le serveur trop (en fait, la majorité des exemples de ce site sont vraiment mauvais, car ils utilisent du code importé non listé). Comment j'ai pu contourner cela en définissant explicitement les données retournées dans le NgTableParams, puis ngTable gère la pagination elle-même. Voici un exemple d'une table qui je ramène des dossiers d'achat d'actions d'une API de repos mis en place comme une usine angulaire - c'est mon contrôleur qui est simpliste, mais travailler:

myApp.controller('stockListController', [ 
'$scope', '$timeout', '$q', '$http', 'stockList', 'NgTableParams', 
function ($scope, $timeout, $q, $http, stockList, NgTableParams) { 
    $scope.loading = true; 

    function initTable() { 
     stockList.getAll({ url: "localhost:52457"}) 
      .$promise.then(function (response) { 
       $scope.data = response; 
       $scope.tableParams = new NgTableParams({ 
        count: 2 // size of page 
       }, { 
        dataset: response 
       }); 
       $scope.loading = false; 
      }, function (response) { 
       alert('Rejected'); 
      }); 
    } 

    initTable(); 
} 

]); Cela peut ne pas être utile dans votre scénario (si la charge de données est importante, j'imagine que la charge pourrait être lente) mais j'espère que cela vous donnera quelque chose à travailler, ou un autre angle à regarder.