Maison > interface Web > js tutoriel > Comment filtrer plusieurs valeurs dans AngularJS sans Eval() ?

Comment filtrer plusieurs valeurs dans AngularJS sans Eval() ?

DDD
Libérer: 2024-11-02 19:24:03
original
429 Les gens l'ont consulté

How to Filter for Multiple Values in AngularJS without Eval()?

Filtrage de plusieurs valeurs dans AngularJS

AngularJS fournit une fonctionnalité de filtre puissante, mais le filtrage de plusieurs valeurs à l'aide de l'opérateur logique OU peut être complexe. Explorons comment filtrer dynamiquement plusieurs valeurs sans recourir à des appels eval() potentiellement dangereux.

Pour obtenir un filtrage dynamique à valeurs multiples, nous vous recommandons de créer un filtre personnalisé. Les filtres sont faciles à créer et constituent un moyen sûr et efficace d'étendre les capacités de filtrage d'AngularJS.

<code class="javascript">angular.module('myFilters', []).
  filter('bygenre', function() {
    return function(movies, genres) {
      var out = [];
      for (var i = 0; i < movies.length; i++) {
        var movie = movies[i];
        if (genres.indexOf(movie.genre) !== -1) {
          out.push(movie);
        }
      }
      return out;
    }
  });
Copier après la connexion

Ce filtre personnalisé, nommé « par genre », prend deux paramètres : les films (les données à filtrer) et genres (la gamme de genres à filtrer). Le filtre vérifie chaque film par rapport aux genres spécifiés et renvoie un nouveau tableau contenant uniquement les films qui correspondent à l'un des genres.

Dans le modèle, nous pouvons utiliser ce filtre personnalisé comme ceci :

<code class="html"><h1 ng-init="movies = [
          {title:'Man on the Moon', genre:'action'},
          {title:'Meet the Robinsons', genre:'family'},
          {title:'Sphere', genre:'action'}
       ];">Movies</h1>
<input type="checkbox" ng-model="genrefilters.action" />Action
<br />
<input type="checkbox" ng-model="genrefilters.family" />Family
<br />{{genrefilters.action}}::{{genrefilters.family}}
<ul>
    <li ng-repeat="movie in movies | bygenre:genrefilters">{{movie.title}}: {{movie.genre}}</li>
</ul></code>
Copier après la connexion

Ce modèle crée une case à cocher pour chaque genre, vous permettant de sélectionner dynamiquement les genres à filtrer. Lorsque vous cochez les cases, les films sont filtrés pour afficher uniquement ceux qui correspondent aux genres sélectionnés.

Cette approche fournit un moyen flexible et sécurisé de filtrer les données de manière dynamique dans AngularJS, vous permettant de rechercher facilement plusieurs valeurs sans compromettre les performances ou la sécurité.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal