AngularJS fournit un mécanisme de filtrage puissant qui vous permet de filtrer les données en fonction de critères spécifiques. Cependant, filtrer plusieurs valeurs à l'aide de l'opération OU simplifiée peut être un défi.
Imaginez que vous ayez un objet représentant un film avec une propriété « genres ». Pour filtrer les films du genre « Action » ou « Comédie », vous pourriez être tenté d'utiliser une expression de filtre telle que :
{genres: 'Action'} || {genres: 'Comedy'}
Cependant, cette approche ne fonctionnera pas pour le filtrage dynamique. Supposons que vous souhaitiez filtrer en fonction d'un éventail de genres stockés dans $scope.genresToFilter. Dans ce cas, vous avez besoin d'une solution plus flexible.
La solution préférée consiste à créer un filtre AngularJS personnalisé. Voici comment procéder :
angular.module('myFilters', []).filter('bygenre', function() { return function(movies, genres) { var out = []; // Implement your filtering logic here return out; } });
Dans votre modèle HTML, utilisez votre filtre personnalisé comme suit :
<ul> <li ng-repeat="movie in movies | bygenre:genresToFilter">{{movie.title}}: {{movie.genre}}</li> </ul>
Vous pouvez désormais modifier dynamiquement genresToFilter pour filtrer les films affichés en fonction sur les genres souhaités. Cette approche est beaucoup plus polyvalente que l'utilisation d'une expression de filtre statique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!