Of-table得到过滤后的数据

Ng-table get filtered data

这是我正在使用 ng-table 工作的代码的摘录。我的问题真的很简单,应该很容易克服,但我就是做不到。

这是摘录:

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

...之后还有更多代码。

让我们稍后说,我想获得过滤后的数据,不仅是 table 的可见部分,而且来自整个 TABLE。根据他们的 GitHub 回购协议,我应该能够像写作一样轻松地做到这一点:

var filteredData = $scope.tableParams.data;

但问题是这种方法只给我 table 上的可见行。而且我想要整套数据。

有人说我可以自定义 ng-table 的 getData 函数(虽然在他们的回购协议中其他人说不需要,因为它是 "solved")但我不知道如何这样做。

你们能帮帮忙吗?

您可以在您的控制器中访问过滤后的数据,包括 ngTableEventsChannel 服务,并监听过滤器的变化:

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

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

在这种情况下,tableParams 将是已更改的 NgTableParams 实例。 filteredData 将是您要访问的内容,您过滤后的数据(yahoo!)。

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