2013-05-15 83 views
0

我有一個屬於一個獨特團隊的球員列表。我會想創建一個觸發了按鈕過濾由2隊製造聯盟列表列表即Angularjs篩選聯盟列表

"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", 
    }] 

我在新的角度,所以我想出了4種方法在網上搜索過濾但既不是那些工作的東西是在我的HTML我有一個按鈕與遊戲可以說,芝加哥@邁阿密當你按下它應該只過濾列表2球員(喬丹和傑克遜)使用Json上面的統一列表,如在查詢中獲取所有擁有芝加哥隊或邁阿密隊的球員。我知道必須創建一個自定義過濾器,但一旦被創建,它可以如何從按鈕調用並影響ng-repeat?該按鈕可以提供主隊和客隊的信息。

回答

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; 
    } 
};