Ng表获取过滤数据

时间:2017-10-19 17:11:30

标签: angularjs filter ngtable

这是使用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  });

...之后的更多代码。

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

var filteredData = $scope.tableParams.data;

但问题是这种方法只能让我看到桌面上可见的行。我想要整套数据。

有些人说我可以自定义ng-table的getData函数(虽然在他们的回购中,其他人说不需要,因为它是"解决了#34;)但我不知道怎么做

你们可以帮忙吗?

1 个答案:

答案 0 :(得分: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