Angularjs 我可以使用角度过滤器按多个字段分组吗?
我使用的是的过滤器 来自GitHub的示例:Angularjs 我可以使用角度过滤器按多个字段分组吗?,angularjs,group-by,angular-filters,Angularjs,Group By,Angular Filters,我使用的是的过滤器 来自GitHub的示例: $scope.players = [ {name: 'Gene', team: 'alpha'}, {name: 'George', team: 'beta'}, {name: 'Steve', team: 'gamma'}, {name: 'Paula', team: 'beta'}, {name: 'Scruath', team: 'gamma'} ]; <ul> <li ng-repeat="(key
$scope.players = [
{name: 'Gene', team: 'alpha'},
{name: 'George', team: 'beta'},
{name: 'Steve', team: 'gamma'},
{name: 'Paula', team: 'beta'},
{name: 'Scruath', team: 'gamma'}
];
<ul>
<li ng-repeat="(key, value) in players | groupBy: 'team'">
Group name: {{ key }}
<ul>
<li ng-repeat="player in value">
player: {{ player.name }}
</li>
</ul>
</li>
</ul>
我想按团队和年龄分组。我如何才能做到这一点?尝试以下方法我假设您希望使用多个值作为标准创建组
ng-repeat="(key, value) in players | groupBy: '[team,age]'"
以多个字段为例
angular.module('app',['angular.filter']))
.controller('MainController',函数($scope){
$scope.players=[
{姓名:'Gene',团队:'alpha',年龄:19},
{姓名:'George',团队:'beta',年龄:19},
{姓名:'Steve',团队:'gamma',年龄:23},
{姓名:'Paula',团队:'beta',年龄:23},
{姓名:'Scruath',团队:'gamma',年龄:23}
];
});代码>
JS-Bin
组名:{{key}
-
玩家:{{player.name}
球队:{{player.team}
年龄:{{player.age}
您是否尝试添加另一个groupBy?预期结果是什么?你试过什么?似乎嵌套的groupBy
可以满足您的需要如何在html中单独访问多个键?关键似乎变成了一连串的“团队,年龄”我需要分开吗?{{key.team}}未定义。等来回答我自己的评论:{{value[0].team}}
和{{value[0].age}
就可以了。使用groupby,您应该能够对每个“团队”和“年龄”(或组)至少计数一行,因此无需检查count>0
。远不是优雅,但它应该工作可靠。当使用多个字段作为密钥时,希望密钥变成json或其他东西。
ng-repeat="(key, value) in players | groupBy: '[team,age]'"