angularjs – Angular UI-Grid:过滤后如何获取总项数

我正在使用UI Grid来显示一些数据.其中一列是文本,所以我有’包含’过滤功能,完美无缺.

我也在使用分页. UI-Grid的右角显示如下内容

1 – 23 of 23 items

在我的页面功能(角度控制器端)中,我需要返回总项数,特别是该行的最后一个“23”.我在文档中找不到任何内容(来自文档):

GridOptions (api in module ui.grid.pagination )

totalItems
Total number of items,set automatically when client side pagination,needs
set by user for server side pagination”

所以我尝试使用$scope.gridOptions.totalItems但不幸的是,当页面首次加载时它总是返回0.

我的解决方法是使用data.length,这将给我我需要的东西.经过进一步测试后,虽然我意识到在使用过滤后,分页页脚上的总项目会更改为匹配结果的总和.我还没有找到另一种方法来获得这个数字.

还有一件事:
是否有一个事件在过滤完成后触发,以便我可以检查$scope.gridOptions.totalItems然后呢?

有任何想法吗?
提前致谢 :)

你应该避免使用jQuery(正如另一篇文章所建议的那样)并与API进行交互.

首先需要在网格创建事件中保存对API的引用.

$scope.gridOptions = {
    ....
    onRegisterapi: registerGridApi,....
};
function registerGridApi(gridApi) {
    $scope.gridApi = gridApi;
}

您应该已经知道总行数.

您可以使用以下命令获取可见/已过滤行数:

gridApi.core.getVisibleRows().length

要么

gridApi.grid.getVisibleRows().length

您可以使用以下命令获取所选行的数量

gridApi.selection.getSelectedRows().length

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...