Maison  >  Article  >  interface Web  >  Comment filtrer les données dans AngularJS à l'aide de plusieurs valeurs (opération OU) ?

Comment filtrer les données dans AngularJS à l'aide de plusieurs valeurs (opération OU) ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 04:40:02377parcourir

How to Filter Data in AngularJS Using Multiple Values (OR Operation)?

Filtrage de plusieurs valeurs (opération OU) dans AngularJS

Dans AngularJS, le filtrage des données est une tâche essentielle pour afficher un contenu personnalisé aux utilisateurs. Cependant, lorsque vous devez filtrer des données en fonction de plusieurs critères, exprimer une opération OU peut s'avérer difficile.

Cette tâche vous oblige à filtrer un objet en fonction de plusieurs valeurs. Considérons un film objet avec une propriété de genre et vous souhaitez afficher des films appartenant aux catégories « Action » ou « Comédie ».

Lors de l'utilisation du filtre :({genres : 'Action'} || { genres : 'Comédie'}) est possible, cela devient fastidieux lorsque l'on souhaite filtrer dynamiquement en fonction d'une variable. Voici comment aborder ce problème :

Fonction de filtre personnalisée

Une meilleure solution consiste à créer une fonction de filtre personnalisée. Les filtres personnalisés offrent une approche plus organisée et maintenable. Vous pouvez définir un filtre nommé par genre dans votre application AngularJS comme suit :

<code class="javascript">angular.module('myFilters', []).filter('bygenre', function() {
  return function(movies, genres) {
    var out = [];
    // Implement filter logic here, adding matches to the out variable.
    return out;
  };
});</code>

Utilisation du modèle

Une fois que vous avez défini le filtre personnalisé, vous pouvez l'utiliser dans votre modèle comme suit :

<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>

Dans le modèle, vous pouvez cocher la case genrefilters pour modifier dynamiquement les critères de filtre. Le filtre personnalisé affichera automatiquement les films qui correspondent à l'un des genres sélectionnés.

Exploration plus approfondie

Pour plus d'informations sur la création de filtres AngularJS personnalisés, reportez-vous à la documentation officielle ici : [Création de filtres angulaires] (https://docs.angularjs.org/guide/filter).

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!

Déclaration:
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