我已经设置了一个带分页和搜索的智能表,我希望显示所有活动行的列总和。这意味着默认情况下整个数据集和搜索处于活动状态时的筛选数据集。智能表文档并没有多说,所以我尝试在我的网格数据变量上设置监视。但是,这样做只是总结当前页面上的行,忽略其他页面。有人能指出智能表保存当前过滤数据集的位置,以及是否有更好的方法来监视搜索事件?感谢。
$scope.$watch('gridData', function() {
$scope.totalSum = 0;
angular.forEach($scope.gridData, function(row) {
$scope.totalSum += row.numericColumn;
});
});
答案 0 :(得分:1)
最近已经实现了这一点,您可以通过主控制器方法getFilteredCollection
访问已过滤的集合以用于显示目的或逻辑目的(如csv导出)。用于显示与搜索
.directive('stSummary', function () {
return {
restrict: 'E',
require: '^stTable',
template: '<div>records:{{size}}</div>',
scope: {},
link: function (scope, element, attr, ctrl) {
scope.$watch(ctrl.getFilteredCollection, function (val) {
scope.size = (val || []).length;
})
}
}
})