在控制器GROUPBY AngularJs过滤器

问题描述 投票:0回答:2

我有一个观点JSON过滤器

<div ng-repeat="(key, value) in TData.Files
            | map: toLocaleDate
            | groupBy: 'da'">
<div><strong>{ Date:</strong> "{{ key }}" , Count: {{value.length}} } ,</div>

使用控制器的过滤器

$scope.toLocaleDate = function (e) {
                var date = e.da.split(" ");
                e.da = date[0];
                return e;
            };

现在,我想有过滤的数据到另一个JSON对象。所以,我需要做的前作过滤器,控制器,而不是查看。如何实现呢?

预期的结果是一样

[{'Date':"2012-01-12", Count:5},{'Date':"2012-01-13", Count:8}, ....]
angularjs angularjs-filter
2个回答
0
投票

由于存在angularjs没有缺省过滤GROUPBY所以你必须做出一个过滤器,你可以在控制器中使用任何过滤器就像解释

注入$filter依赖,并在控制器只需使用简单的语法

$filter('filtername')('arraydata', 'other arguments');

http://jsfiddle.net/R8YZh/35/


0
投票

如果您需要在js代码。可以使用角滤波器IIb的注入方法。过滤器“分组依据”是这个库的一部分。这样使用它。

function controller($scope, $http, groupByFilter) {     

   var groupedData = groupByFilter(originalArray, 'groupPropName');

}

https://github.com/a8m/angular-filter/wiki/Common-Questions#inject-filters

© www.soinside.com 2019 - 2024. All rights reserved.