Angularjs ng grid在筛选后获得筛选列计数

Angularjs ng grid在筛选后获得筛选列计数,angularjs,ng-grid,Angularjs,Ng Grid,我正在使用ng网格进行过滤。每当过滤器更新时,我都希望获得过滤的项目计数。我已经能够使用ngGrid的filteredRows属性完成这项工作。但是,我在过滤之前获取行,并且在过滤之后获取行。下面是一个plunker来演示该行为: 以下是发生过滤的代码: $scope.$watch('gridOptions.filterOptions.filterText2', function(searchText, oldsearchText) { if (searchText !== olds

我正在使用ng网格进行过滤。每当过滤器更新时,我都希望获得过滤的项目计数。我已经能够使用ngGrid的filteredRows属性完成这项工作。但是,我在过滤之前获取行,并且在过滤之后获取行。下面是一个plunker来演示该行为:

以下是发生过滤的代码:

$scope.$watch('gridOptions.filterOptions.filterText2', function(searchText, oldsearchText) {
      if (searchText !== oldsearchText) {
        $scope.gridOptions.filterOptions.filterText = "name:" + searchText + "; ";
        $scope.recordCount = $scope.gridOptions.ngGrid.filteredRows.length;
    }
});

在查看了源代码并进行了一些调试之后,我认为网格的实际过滤是在您的观察者触发之后进行的。监听
ngGridEventFilter
也是如此,它在过滤行之前也会触发

我提出的解决方案是收听
ngGridEventRows

    $scope.$watch('gridOptions.filterOptions.filterText2', function(searchText, oldsearchText) {
    if (searchText !== oldsearchText) {
      $scope.gridOptions.filterOptions.filterText = "name:" + searchText + "; ";
    }
    });
    $scope.$on('ngGridEventRows', function() {
    $scope.recordCount = $scope.gridOptions.ngGrid.filteredRows.length;
    });
这似乎在这种情况下起作用

从我最近对gridevents的实验中,我了解到row事件非常频繁(例如,当您滚动每一行时),因此我不确定这是否是最佳实践。但是,由于您只更新了一个糟糕的计数器,所以它对性能没有太大影响

还有其他人可能会想出更好的主意。请告诉我这是如何最终解决的