我有一个计算分数的应用。分数数据中的一个关键是“期间”。我希望在视图中按期间和团队提供一个方框分数。
我需要按团队和期间过滤和汇总我的分数数据。
如果我将数据过滤到表达式,.length会很容易在视图中执行此操作。在阅读了类似挑战的许多帖子后,我的问题是 - 哪里是进行此过滤的最佳位置?
我可以对分数进行ng-repeat并按团队过滤,但我需要按期间再次过滤。
我看过this post。我正在尝试类似Plunker中的类似内容,但它似乎并没有像我希望的那样工作。
$scope.homeScores = $filter('filter')($scope.scores, {team:'home'})[0];
感觉它应该更容易实现......
有什么建议吗?谢谢!
答案 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}
];
});