J'essaie de filtrer la liste avec des filtres multiples + une fonction de filtre personnalisée.
L'exemple original de jsfiddle est le suivant http://jsfiddle.net/ed9A2/1/ mais maintenant je veux changer la façon dont l'âge est filtré.
Je veux ajouter un filtre personnalisé pour que âge il filtre en fonction de deux valeurs d'entrée qui sont âge minimum y âge max. , (entre l'âge) .
Après avoir examiné le doc. j'ai trouvé des personnes ayant des questions similaires et un utilisateur Mark Rajcok a répondu http://docs.angularjs.org/api/ng.filter:filter#comment-648569667 semble bon et devrait fonctionner. Mais j'ai des difficultés à l'appliquer dans mes codes, notamment parce que j'ai d'autres filtres multiples.
Je suis très novice en AngularJS :(
Ma méthode éprouvée et qui ne fonctionne PAS est la suivante http://jsfiddle.net/ed9A2/20/
Un copier-coller de mes codes qui ne fonctionnent PAS se trouve ici.
Voir
<div ng-app ng-controller="MainController">
<table class="fancyTable">
<tr>
<th>Player id</th>
<th>Player name</th>
<th>Age</th>
</tr>
<tr>
<td><input ng-model="player_id" /></td>
<td><input ng-model="player_name" /></td>
<td>
Min Age:<input ng-model="min_age" />
Max Age:<input ng-model="max_age" />
</td>
</tr>
<tr ng-repeat="player in players | filter:{id: player_id, name:player_name, age:ageFilter}">
<td>{{player.id}}</td>
<td>{{player.name}}</td>
<td>{{player.age}}</td>
</tr>
</table>
Contrôleur
function MainController($scope) {
$scope.player_id = "";
$scope.player_name = "";
$scope.player_age = "";
$scope.min_age = 0;
$scope.max_age = 999999999;
$scope.ageFilter = function(player) {
return ( player > $scope.min_age && player.age < $scope.max_age);
}
$scope.players = [
{"name": "Rod Laver",
"id": "rod",
"date": "1938/8/9",
"imageUrl": "img/rod-laver.gif",
"age": 75},
{"name": "Boris Becker",
"id": "borix",
"date": "1967/11/22",
"imageUrl": "img/boris-becker.gif",
"age": 45},
{"name": "John McEnroe",
"id": "mcenroe",
"date": "1959/2/16",
"imageUrl": "img/john-mc-enroe.gif",
"age": 54},
{"name": "Rafa Nadal",
"id": "nadal",
"date": "1986/5/24",
"imageUrl": "img/ndl.jpg",
"age": 27}
]
}