AngularJS-Filter für mehrere Strings

8

Ich arbeite durch das AngularJS-Tutorial und verstehe die Grundlagen von

Die Out-of-the-Box-Implementierung scheint jedoch darauf beschränkt zu sein, die Liste der Elemente nur nach dem genauen Wort oder Ausdruck zu filtern, in dem sie eingegeben wurde.

Beispiel: Wenn die Abfrage "table cloth" ist, kann die Ergebnisliste ein Ergebnis mit dieser Phrase "Decorative table cloth" enthalten, aber nicht "Decorative cloth for table", da der Filter nur eine kontinuierliche Suche ist Zeichenfolge.

Ich weiß, dass es die Möglichkeit gibt, benutzerdefinierte Filter hinzuzufügen, aber auf den ersten Blick scheint es, dass es sich hauptsächlich um Transformationen handelt.

Gibt es eine Möglichkeit, einen benutzerdefinierten Filter hinzuzufügen, so dass sowohl "Dekorative Tischdecke" als auch "Dekorative Tischdecke" in der gefilterten Ergebnismenge angezeigt werden?

    
user3043124 08.12.2013, 22:09
quelle

6 Antworten

5

Bitte sehen Sie unten surfbuds nach, wie es ist überlegen

Rollen Sie einfach mit Ihrem eigenen Filter:

%Vor%

jsfiddle : Ссылка

Dieser Filter stellt sicher, dass alle Suchbegriffe gefunden werden.

    
Mathew Berg 08.12.2013, 22:37
quelle
18

Einige Verbesserungen am obigen benutzerdefinierten Filter:

Anstatt eine Schleife innerhalb einer Schleife, counts und indexOf zu verwenden, verwendet diese reguläre Ausdrücke , um ein logisches AND und auch ein logisches OR abhängig vom dritten Argument des Filters (Eingabearray von Strings, Suchbegriffen, UND oder ODER) .

Sehen Sie sich die gegabelte Fiddle mit den beiden Filterarten und Ergebnissen an:

Ссылка

%Vor%     
surfbuds 04.05.2014 03:16
quelle
3

Alternativ können Sie den Standard-Angular-Filter in Ihrem benutzerdefinierten Filter wie folgt verwenden:

%Vor%

Dies könnte weiter mit dem AND_OR Komparator von user2005009 verschönert werden.

    
JonoWilko 13.11.2014 11:37
quelle
0

Hier ist meine Version. Es verwendet JonoWilkos Methode, die eingebaute filterFilter in Kombination mit dem Surfbud-AND / OR-Flag zu verwenden (standardmäßig auf "AND" ).

JavaScript

%Vor%

CoffeeScript

%Vor%

'AND' Verwendung (Standard)

%Vor%

'ODER' Verwendung

%Vor%     
HasFiveVowels 16.07.2015 20:01
quelle
0

Sie können eine Mehrfachwortsuche für ein Objekt wie folgt durchführen:

%Vor%

Arbeitsdemo in js Geige

    
Tomiwa Adefokun 06.08.2015 10:08
quelle
0

Nicht ein Liner, aber immer noch ziemlich kurz und lustig

%Vor%     
rturkek 02.09.2015 04:22
quelle

Tags und Links