【问题标题】:Ng-table get filtered datang-table 获取过滤后的数据
【发布时间】:2017-10-19 17:11:29
【问题描述】:

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

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

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

var filteredData = $scope.tableParams.data;

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

有人说我可以自定义 ng-table 的 getData 函数(尽管在他们的仓库中其他人说不需要,因为它已“解决”)但我不知道该怎么做。

你们能帮忙吗?

【问题讨论】:

标签: angularjs filter ngtable


【解决方案1】:

您可以在控制器中访问过滤后的数据,包括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

【讨论】:

  • 哈哈。现在很高兴知道。为了得到它,我不得不重写 getData 函数。不管怎么说,还是要谢谢你! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多