Смарт-таблица Angular: столбец суммы с разбиением на страницы+поиск

Я настроил смарт-таблицу с разбиением на страницы и поиском и хочу отобразить сумму столбца для всех активных строк. Это означает весь набор данных по умолчанию и отфильтрованный набор данных, когда поиск активен. Документация по смарт-таблицам мало что говорит, поэтому я попытался настроить часы для моей переменной данных сетки. Однако это суммирует только строки на текущей странице, игнорируя другие страницы. Может ли кто-нибудь указать мне, где смарт-таблица содержит текущий отфильтрованный набор данных, и есть ли лучший способ отслеживать событие поиска? Спасибо.

    $scope.$watch('gridData', function() {
        $scope.totalSum = 0;

        angular.forEach($scope.gridData, function(row) {
            $scope.totalSum += row.numericColumn;
        });
    });

person ystan-    schedule 07.03.2015    source источник
comment
похоже, что количество пользователей smart-table еще не совсем масштабируется. тогда я пойду искать другую библиотеку, которая делает это.   -  person ystan-    schedule 13.03.2015


Ответы (1)


Это было реализовано недавно, вы можете получить доступ к отфильтрованной коллекции для целей отображения или логики (например, экспорт csv) через метод основного контроллера getFilteredCollection. Пример директивы для отображения количества записей, соответствующих запросу

.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;
      })
     }
    }
})
person laurent    schedule 16.03.2015