如何使用角度过滤器对数据进行分组?

发布于 2021-02-02 17:31:06

我有一个属于每个小组的球员名单。如何使用过滤器列出每个组的用户?

[{name: 'Gene', team: 'team alpha'},
 {name: 'George', team: 'team beta'},
 {name: 'Steve', team: 'team gamma'},
 {name: 'Paula', team: 'team beta'},
 {name: 'Scruath of the 5th sector', team: 'team gamma'}];

我在寻找这个结果:

  • team alpha
  • Gene
  • team beta
  • George
  • Paula
  • team gamma
  • Steve
  • Scruath of the 5th sector
关注者
0
被浏览
104
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    可以使用angular.filter模块的groupBy。 因此您可以执行以下操作:

    JS:

    $scope.players = [
      {name: 'Gene', team: 'alpha'},
      {name: 'George', team: 'beta'},
      {name: 'Steve', team: 'gamma'},
      {name: 'Paula', team: 'beta'},
      {name: 'Scruath', team: 'gamma'}
    ];
    

    HTML:

    <ul ng-repeat="(key, value) in players | groupBy: 'team'">
      Group name: {{ key }}
      <li ng-repeat="player in value">
        player: {{ player.name }} 
      </li>
    </ul>
    

    结果:
    Group name: alpha * player: Gene
    Group name: beta * player: George * player: Paula
    Group name: gamma * player: Steve * player: Scruath


    更新:
    jsbin请记住要使用的基本要求angular.filter,特别注意您必须将其添加到模块的依赖项中:

    (1)您可以使用4种不同的方法安装角度过滤器:

    1. 克隆并构建此存储库
    2. 通过Bower:通过运行$ bower在终端上安装angular-filter
    3. 通过npm:通过运行$ npm从您的终端安装angular-filter
    4. 通过cdnjs
      filter

    (2)在包含Angular本身之后,在您的index.html中包含angular-filter.js(或angular-filter.min.js)。

    (3)将“ angular.filter”添加到主模块的依赖项列表中。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看