2017-10-19 88 views
1

这是一个使用ng表的代码im的摘录。我的问题很简单,据说它应该很容易克服,但我只是无法做到。吴表得到过滤的数据

这是摘录:

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

... ...之后,更多的代码。我们希望能够在后面得到过滤数据,不仅仅是表格的可见部分,而是来自整个表格。根据他们的GitHub库,我应该能够做到这一点那么容易写作:

var filteredData = $scope.tableParams.data; 

但问题是,这种做法是给我放在桌子上那些看得见行。我想要整套数据。

有一些人说我可以自定义ng-table的getData函数(虽然在他们的回购中其他人所说的并不需要,因为它“解决了”),但我不知道该怎么做。

你们可以帮忙吗?

+0

顺便说一句,这是他们说的固定:https://github.com/esvit/ng-table/pull/937 –

回答

2

您可以访问过滤后的数据,包括您的控制器ngTableEventsChannel服务,并侦听过滤器的更换:

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

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

在这种情况下,tableParams将是NgTableParams情况已经改变。并且filteredData将成为您想访问的内容,您的过滤数据(雅虎!)。

更多信息:http://ng-table.com/api-docs/classes/ngtableeventschannel.html

+0

哈哈。现在很高兴知道。为了得到它,我必须重写getData函数。不管怎么说,还是要谢谢你! :) –