$scope.gridApi.core.getVisibleRows 未使用列清除过滤器正确更新

$scope.gridApi.core.getVisibleRows does not update correctly with column clear filter

如何获取"Showing Items"中实际存在的行? $scope.gridApi.core.getVisibleRows 似乎给出了不一致的值。

http://plnkr.co/edit/FRaCNxKhZ242rFyqNDkm?p=preview

gridApi.core.on.filterChanged($scope, function () {
    $timeout(function () {
        var allvisiblerows = $scope.gridApi.core.getVisibleRows($scope.gridApi.grid);
        $scope.visibleRowsCount = allvisiblerows.length;
    }, 0);
});

filterChanged 的问题是一旦过滤器发生变化就会引发它,但那时数据不一定已被过滤。要解决此问题,您可以监听 rowsRendered 事件而不是监听 filterChanged 事件,这将解决问题。

gridApi.core.on.rowsRendered($scope, function () {
    var allvisiblerows = $scope.gridApi.core.getVisibleRows($scope.gridApi.grid);
    $scope.visibleRowsCount = allvisiblerows.length;
});

这样你也可以去掉$timeout.