2017-10-19 102 views
1

ceci est un extrait d'un code im travaillant sur l'utilisation de ng-table. Mon problème est vraiment simple et soi-disant il devrait être facile à surmonter mais je suis juste incapable de le faire.Ng-table obtient des données filtrées

Voici l'extrait:

$scope.loading++; 
      clean();  
      $scope.environment = "SOMEENV"; 
        $http({ 
         method: 'GET', 
         url: 'http://SOMEIP:SOMEPORT/all?environment=SOMEENV' 
         }).then(function successCallback(response) { 
           // this callback will be called asynchronously 
           // when the response is available 

           $scope.nodes = response.data; 
           $scope.chartdataservtype=countservtype(response.data); 
           $scope.tableParams = new NgTableParams({}, { dataset: response.data.rows }); 

... plus de code après. Laisse dire que plus tard, je veux obtenir les données filtrées, non seulement de la partie visible de la table, mais de la table entière. Selon leur repo GitHub, je devrais pouvoir faire aussi facilement que l'écriture:

var filteredData = $scope.tableParams.data; 

Mais le problème est que cette approche me donne seulement les lignes VISIBLES sur la table. Et je veux l'ensemble des données.

Il y a des gens qui disent que je peux personnaliser la fonction getData de ng-table (bien que d'autres disent que ce n'est pas nécessaire car il est "résolu") mais je ne sais pas comment le faire.

Pourriez-vous nous aider?

+0

BTW, voilà où ils disent que fixe: https://github.com/esvit/ng-table/pull/937 –

Répondre

2

Vous pouvez accéder aux données filtrées, y compris le service ngTableEventsChannel dans votre contrôleur, et écoutez les changements de filtre:

function yourController($scope, NgTableParams, ngTableEventsChannel) { 
    activate(); 

    function activate() { 
     ngTableEventsChannel.onAfterDataFiltered(function(tableParams, filteredData){ 
      //DO SOMETHING 
     }); 
    } 
} 

Dans ce cas, tableParams sera l'instance NgTableParams qui a changé. Et filteredData sera ce que vous voulez accéder, vos données filtrées (yahoo!).

Plus d'infos: http://ng-table.com/api-docs/classes/ngtableeventschannel.html

+0

haha. Bon à savoir maintenant. J'ai dû réécrire la fonction getData juste pour l'obtenir. Merci quand même! :) –