Can I group by multiple fields using Angular-Filter?

前端 未结 2 1653
一向
一向 2020-12-16 03:10

I\'m using Angular-Filter\'s groupBy filter.

Example from GitHub:

$scope.players = [
  {name: \'Gene\', team: \'alpha\'},
  {name:          


        
相关标签:
2条回答
  • 2020-12-16 03:37

    try the following i am assuming you want groups to be created using multiple values as criteria

    ng-repeat="(key, value) in players | groupBy: '[team,age]'"
    
    0 讨论(0)
  • 2020-12-16 03:38

    Follow the example of multiple fields

    angular.module('app',['angular.filter'])
      .controller('MainController', function($scope) { 
        $scope.players = [
          {name: 'Gene', team: 'alpha', age: 19},
          {name: 'George', team: 'beta', age: 19},
          {name: 'Steve', team: 'gamma', age: 23},
          {name: 'Paula', team: 'beta', age: 23},
          {name: 'Scruath', team: 'gamma', age: 23}
        ];
     });
    <!DOCTYPE html>
    <html ng-app="app">
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
      <script src="//cdnjs.cloudflare.com/ajax/libs/angular-filter/0.4.7/angular-filter.js"></script>
      
    <meta name="description" content="[groupBy example]"/>
      <meta charset="utf-8">
      <title>JS Bin</title>
    </head>
    <body>
      <div ng-controller="MainController"> 
    
    <ul ng-repeat="(key, value) in players | groupBy: '[team,age]'">
      <b>Group name: {{key}}</b>
      <br>
      <li ng-repeat="player in value">
        <b>player:</b> {{ player.name }} 
        <br>
        <b>team:</b> {{player.team}} 
        <br>
        <span ng-if="player.age"><b>age:</b> {{ player.age }}</span>
      </li>
    </ul>
      </div>
    </body>
    </html>

    0 讨论(0)
提交回复
热议问题