我在视图中有一个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对象。所以我需要在控制器中而不是在View中进行过滤。如何实现?
预期结果如
[{'Date':"2012-01-12", Count:5},{'Date':"2012-01-13", Count:8}, ....]
答案 0 :(得分:0)
由于angularjs中没有默认过滤器groupBy所以你必须为它做一个过滤器 你可以使用控制器中的任何过滤器,只是解释为
注入$filter
依赖项,在控制器中只使用简单语法
$filter('filtername')('arraydata', 'other arguments');
答案 1 :(得分:0)
如果您需要使用js代码。您可以使用角度滤镜lib的注入方法。筛选器“ group by”是此库的一部分。像这样使用它。
function controller($scope, $http, groupByFilter) {
var groupedData = groupByFilter(originalArray, 'groupPropName');
}
https://github.com/a8m/angular-filter/wiki/Common-Questions#inject-filters