Filtrage de plusieurs valeurs dans AngularJS
AngularJS fournit un mécanisme de filtrage puissant pour affiner les données affichées dans vos modèles. Cependant, filtrer plusieurs valeurs à l'aide de || L'opérateur peut devenir encombrant et peu flexible lorsqu'il travaille avec des filtres dynamiques. Cet article explore une solution plus élégante utilisant des filtres personnalisés.
Filtres personnalisés pour le filtrage de valeurs multiples
Au lieu de manipuler l'expression du filtre de manière dynamique, créez un filtre personnalisé qui gère cela logique. Les filtres personnalisés vous permettent de définir vos propres fonctions de filtrage. Voici un exemple :
<code class="javascript">angular.module('myFilters', []). filter('bygenre', function() { return function(movies, genres) { const matches = []; // Apply filtering logic here return matches; } });</code>
Le filtre par genre prend deux paramètres : les films, le tableau d'objets à filtrer, et les genres, le tableau de genres à filtrer. La fonction parcourt le tableau des films, vérifie si le genre de chaque film correspond à un genre du tableau des genres et ajoute des correspondances au tableau des correspondances. Enfin, le tableau matches est renvoyé comme résultat filtré.
Application du filtre
Dans votre modèle, utilisez la directive ng-repeat avec le | bygenre pipe pour appliquer le filtre :
<code class="html"><ul> <li ng-repeat="movie in movies | bygenre:genrefilters" >{{movie.title}}: {{movie.genre}} </li> </ul></code>
Valeurs de filtre dynamique
Dans le code HTML ci-dessus, genrefilters est un objet qui spécifie les genres à filtrer. Vous pouvez mettre à jour dynamiquement cet objet dans votre contrôleur pour réaliser un filtrage dynamique. Par exemple, le code suivant utilise des cases à cocher pour définir l'objet genrefilters :
<code class="html"><input type="checkbox" ng-model="genrefilters.action" /> Action <br> <input type="checkbox" ng-model="genrefilters.family" /> Family</code>
Lorsque les cases à cocher sont activées, l'objet genrefilters est mis à jour et le filtre bygenre applique automatiquement les nouveaux critères de filtrage.
Cette approche fournit un moyen propre et flexible de filtrer les données en fonction de plusieurs valeurs dans AngularJS, ce qui la rend particulièrement adaptée aux scénarios où les critères de filtrage sont soumis à changement.
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!