Heim >Web-Frontend >js-Tutorial >Wie filtere ich Daten in AngularJS mithilfe mehrerer Werte (ODER-Operation)?

Wie filtere ich Daten in AngularJS mithilfe mehrerer Werte (ODER-Operation)?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 04:40:02380Durchsuche

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

Filtern mehrerer Werte (ODER-Verknüpfung) in AngularJS

In AngularJS ist das Filtern von Daten eine wesentliche Aufgabe, um Benutzern maßgeschneiderte Inhalte anzuzeigen. Wenn Sie jedoch Daten auf der Grundlage mehrerer Kriterien filtern müssen, kann das Ausdrücken einer ODER-Verknüpfung eine Herausforderung darstellen.

Für diese Aufgabe müssen Sie ein Objekt auf der Grundlage mehrerer Werte filtern. Betrachten Sie einen Objektfilm mit einer Genres-Eigenschaft und Sie möchten Filme anzeigen, die entweder zur Kategorie „Action“ oder „Komödie“ gehören.

Bei Verwendung von filter:({genres: 'Action'} || { Genres: „Comedy“}) möglich ist, wird es umständlich, wenn Sie dynamisch basierend auf einer Variablen filtern möchten. So können Sie dieses Problem angehen:

Benutzerdefinierte Filterfunktion

Eine bessere Lösung besteht darin, eine benutzerdefinierte Filterfunktion zu erstellen. Benutzerdefinierte Filter bieten einen besser organisierten und wartbareren Ansatz. Sie können in Ihrer AngularJS-Anwendung einen Filter mit dem Namen „bygenre“ wie folgt definieren:

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

Vorlagenverwendung

Sobald Sie den benutzerdefinierten Filter definiert haben, können Sie ihn wie folgt in Ihrer Vorlage verwenden:

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

In der Vorlage können Sie das Kontrollkästchen „Genrefilter“ umschalten, um die Filterkriterien dynamisch zu ändern. Der benutzerdefinierte Filter zeigt automatisch Filme an, die einem der ausgewählten Genres entsprechen.

Weitere Informationen

Weitere Informationen zum Erstellen benutzerdefinierter AngularJS-Filter finden Sie in der offiziellen Dokumentation hier: [Angularfilter erstellen] (https://docs.angularjs.org/guide/filter).

Das obige ist der detaillierte Inhalt vonWie filtere ich Daten in AngularJS mithilfe mehrerer Werte (ODER-Operation)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn