Angular smart-table: 使用分页+搜索求和列
Angular smart-table: Sum column with Pagination+Search
我已经设置了一个带有分页和搜索功能的 smart-table,我希望显示所有活动行的列总和。这意味着默认情况下的整个数据集和搜索处于活动状态时过滤的数据集。 smart-table 文档没有说太多,所以我尝试在我的网格数据变量上设置一个手表。但是,这样做只是对当前页面上的行求和,而忽略其他页面。有人可以指出 smart-table 保存当前过滤数据集的位置,以及是否有更好的方法来监视搜索事件?谢谢
$scope.$watch('gridData', function() {
$scope.totalSum = 0;
angular.forEach($scope.gridData, function(row) {
$scope.totalSum += row.numericColumn;
});
});
最近已实现,您可以通过主控制器方法 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;
})
}
}
})
我已经设置了一个带有分页和搜索功能的 smart-table,我希望显示所有活动行的列总和。这意味着默认情况下的整个数据集和搜索处于活动状态时过滤的数据集。 smart-table 文档没有说太多,所以我尝试在我的网格数据变量上设置一个手表。但是,这样做只是对当前页面上的行求和,而忽略其他页面。有人可以指出 smart-table 保存当前过滤数据集的位置,以及是否有更好的方法来监视搜索事件?谢谢
$scope.$watch('gridData', function() {
$scope.totalSum = 0;
angular.forEach($scope.gridData, function(row) {
$scope.totalSum += row.numericColumn;
});
});
最近已实现,您可以通过主控制器方法 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;
})
}
}
})