2015-03-07 3 views
0

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

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

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

10 Похоже, что численность пользователей смарт-стола еще не совсем масштабируется. я буду прыгать, чтобы искать другую библиотеку, которая делает это тогда. – tys

ответ

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; 
     }) 
    } 
    } 
})