Angular JS - Box分数过滤器 - 应该是函数还是过滤器?

时间:2015-12-18 03:54:41

标签: angularjs

我有一个计算分数的应用。分数数据中的一个关键是“期间”。我希望在视图中按期间和团队提供一个方框分数。

我需要按团队和期间过滤和汇总我的分数数据。

如果我将数据过滤到表达式,

.length会很容易在视图中执行此操作。在阅读了类似挑战的许多帖子后,我的问题是 - 哪里是进行此过滤的最佳位置?

我可以对分数进行ng-repeat并按团队过滤,但我需要按期间再次过滤。

我看过this post。我正在尝试类似Plunker中的类似内容,但它似乎并没有像我希望的那样工作。

  $scope.homeScores = $filter('filter')($scope.scores, {team:'home'})[0];

感觉它应该更容易实现......

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.8/angular.js" data-semver="1.4.8"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <ul ng-repeat="score in (filteredItems = (scores | filter:{team: 'home', period:3}))">
      <li>{{ score.period }} - {{score.team}}</li>
    </ul>
    <p>Scores: {{ scores.length }}</p>
    <p>Home Scores: {{ filteredItems.length }}</p>
  </body>

</html>

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, $filter) {
  $scope.scores = [
    {team: 'home', period: 1},
    {team: 'away',period: 2},
    {team: 'home',period: 2},
    {team: 'home',period: 3},
    {team: 'away',period: 3},
    {team: 'home',period: 3}
    ];


});