这是使用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;)但我不知道怎么做
你们可以帮忙吗?
答案 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