1

我想使用过滤器返回对于特定字段具有空字符串的所有值。

也就是说,在代码中:

var groups = $filter('unique')(addresses, 'country');
var groupedByCountry = [];

angular.forEach(groups, function (value, key) {
   var selectedGroup = value['country'];
   var grouped = $filter('filter')(addresses, { country: selectedGroup });
   this.push(grouped);
}, groupedByCountry);

从http://jsfiddle.net/b7cjM/可以看出,它按预期创建了指定国家/地区的组,但我希望最后一个组仅包含指定国家/地区的地址(而不是,如当前,一组所有地址)。

这可能使用angularjs吗?

**

正如punund所建议的那样,我写了一个'groupBy'过滤器['unique'过滤器的天真转换:http: //jsfiddle.net/b7cjM/1 ],这是一个比我更简单的问题解决方案尝试。我怀疑这种类型的自定义“filterByEmpty”也是解决问题的方法。

4

1 回答 1

0

underscore或者lodash可能更适合您:

groupedBy = _.groupBy($scope.addresses, 'country');

适当考虑空字符串,您不需要第二个过滤器。另一种选择是自己实现一种“groupBy”角度过滤器。

于 2013-09-17T10:00:00.073 回答