3
4 개의 다른 select 요소가 있고 그 중 ng-repeat를 필터링하려고합니다. 다른 선택 요소의 1 옵션을 선택하면 결과가 좋지만 2 옵션을 선택하면 오류가 발생합니다. 여기 Angular js 필터의 다중 다중 선택
는 exemple에게 있습니다 http://jsfiddle.net/245NY/HTML :
<div ng-app="app" ng-controller="goalList" >
<div class="hidden filter">
<select multiple="multiple" data-placeholder="Team" ng-multiple="true" ng-model="selectedTeams" ng-options="team for team in teams"class="select" >
</select>
<select multiple="multiple" data-placeholder="League" ng-multiple="true" ng-model="selectedLeague" ng-options="league for league in leagues"class="select" >
</select>
<select multiple="multiple" data-placeholder="Season" ng-multiple="true" ng-model="selectedSeason" ng-options="season for season in seasons"class="select" >
</select>
<select multiple="multiple" data-placeholder="City/Country" ng-model="selectedCountry" ng-options="countrys for countrys in country"class="select" ></select>
</div>
<div>
<div ng-repeat="goal in goals | filter:{ Team: selectedTeams, League:selectedLeague,Season:selectedSeason ,Country:selectedCountry}" >
{{goal.Team}}
</div>
</div>
</div>
자바 스크립트 :
var json = [
{
"Team":"Paris Saint Germain",
"VS":"Guingamp",
"Home":"Ja",
"Date":"2013-08-31",
"League":"Ligue 1",
"Result":"2-0",
"City/Country":"Paris/France",
"URL":"https://www.youtube.com/watch?feature=player_detailpage&v=0h46CxzQpuY#t=160",
"start":"2:40",
"Season":"2013/2014",
"quality":""
},
{
"Team":"Kazakhstan",
"VS":"Sweden",
"Home":"",
"Date":"2013-09-10",
"League":"National",
"Result":"0-1",
"City/Country":"Astana/Kazakhstan",
"URL":"https://www.youtube.com/watch?feature=player_detailpage&v=vO80M5ftVSo#t=5",
"start":"0:04",
"Season":"2013/2014",
"quality":""
},
{
"Team":"Paris Saint Germain",
"VS":"Monaco",
"Home":"Ja",
"Date":"2013-09-22",
"League":"Ligue 1",
"Result":"1-1",
"City/Country":"Paris/France",
"URL":"https://www.youtube.com/watch?feature=player_detailpage&v=XMKpCwZovi0#t=32",
"start":"0:30",
"Season":"2013/2014",
"quality":""
},
{
"Team":"Paris Saint Germain",
"VS":"Benfica",
"Home":"Ja",
"Date":"2013-10-02",
"League":"Champions League",
"Result":"3-0",
"City/Country":"Paris/France",
"URL":"https://www.youtube.com/watch?feature=player_detailpage&v=W7VyshZkZO0#t=34",
"start":"0:34",
"Season":"2013/2014",
"quality":""
},
{
"Team":"Paris Saint Germain",
"VS":"Benfica",
"Home":"Ja",
"Date":"2013-10-02",
"League":"Champions League",
"Result":"3-0",
"City/Country":"Paris/France",
"URL":"https://www.youtube.com/watch?feature=player_detailpage&v=W7VyshZkZO0#t=66",
"start":"1:07",
"Season":"2013/2014",
"quality":""
}, {
"Team":"Sweden",
"VS":"France",
"Home":"Ja",
"Date":"2012-06-19",
"League":"Euro Championship",
"Result":"2-0",
"City/Country":"Kiev/Ukraine",
"URL":"http://www.youtube.com/watch?v=DDbOmp9_Nn4#t=183",
"start":"3:04",
"Season":"2011/2012",
"quality":""
}
];
var base=[];
var app = angular.module('app', []);
app.controller('goalList', function($scope, $http) {
$scope.goals = [];
//$scope.goals = res.data;
var data = json;
for (var i=0, len=data.length; i<len; i++) {
base.push({
'id' : i,
'Team':data[i]['Team'],
'VS':data[i]['VS'],
'Home':data[i]['Home'],
'Date':new Date(data[i]['Date']),
'League':data[i]['League'],
'Result':data[i]['Result'],
'Country':data[i]['City/Country'],
'URL':data[i]['URL'],
'vidid':data[i]['URL'],
'start' : data[i]['start'],
'Season' : data[i]['Season'],
'Thumb' : "http://img.youtube.com/vi/mqdefault.jpg"
});
}
$scope.goals = base;
$scope.leagues =_.chain($scope.goals).pluck("League").uniq().sortBy().value();
$scope.teams =_.chain($scope.goals).pluck("Team").uniq().sortBy().value();
$scope.seasons =_.chain($scope.goals).pluck("Season").uniq().sortBy().value();
$scope.country =_.chain($scope.goals).pluck("Country").uniq().sortBy().value();
$scope.clearFilters = function(){
$scope.selectedLeague = undefined;
$scope.selectedTeams = undefined;
$scope.selectedSeason = undefined;
$scope.selectedCountry = undefined;
};
});