0

我有一份属于一个独特球队的球员名单。我想创建一个在 Button 上触发的过滤器,由 2 个创建联盟列表的团队过滤列表,即

"Players": [
  {
    "Name": "Aron Baynes",
    "TeamName": "San Antonio Spurs",
    "TeamID": "4fd03d4e1c73bc0a74b81f24",
   },
  {
    "Name": "Michael Jordan",
    "TeamName": "Chicago Bulls",
    "TeamID": "4fd03d4e1c73bc0a74b81f18",
  },
  {
    "Name": "Tim Duncan",
    "TeamName": "Los Angeles Lakers",
    "TeamID": "4fd03d4e1c73bc0a74b81f11",
  },
  {
    "Name": "Stephen Jackson",
    "TeamName": "Miami Heat",
    "TeamID": "4fd03d4e1c73bc0a74b81f15",
  }]

我是 Angular 的新手,所以我想出了 4 种搜索网络的方法,但这些方法都没有在我的 HTML 中起作用 我有一个带有游戏的按钮,当你按下它应该只过滤列表2 名球员(乔丹和杰克逊)使用联合列表上方的 Json,例如在查询中获取拥有芝加哥或迈阿密球队的所有球员。我知道必须创建一个自定义过滤器,但是一旦创建它如何从按钮调用并影响 ng-repeat?按钮可以提供主队和客队的信息。

4

1 回答 1

1

您将需要创建两个可由您的ng-repeat | filter. 当您单击按钮时,ng-click您可以设置这些scope值。

<ul>
    <li ng-repeat="player in players | filter:filterFunction">{{player.Name}}</li>
</ul>
<button ng-click="setTeams('Chicago Bulls', 'Miami Heat')">Click</button>
<button ng-click="setTeams('', '')">Reset</button>


$scope.setTeams = function (homeTeam, awayTeam) {
    $scope.homeTeam = homeTeam;
    $scope.awayTeam = awayTeam;
};
$scope.filterFunction = function (item) {
    if ($scope.homeTeam && $scope.awayTeam) {
        if (item.TeamName == $scope.homeTeam || item.TeamName == $scope.awayTeam) {
            return item;
        }
    } else {
        return item;
    }
};
于 2013-05-15T18:59:12.840 回答