1
Ich habe eine Datenbank, die nach Geschlecht gefiltert werden muss. Alles funktioniert gut.Angular Filter für Geschlecht mit Auswahl Drop-down
Aber wenn ich nach Geschlecht filtern, wie weiblich Teil des Mannes ist, zeigt sich auch weiblich. Wenn ich weiblich auswähle, dann versteckt sich Männchen.
<select name="" id="" ng-model="test.filterByGender">
<option value="">By Gender</option>
<option value="female">Female</option>
<option value="male">Male</option>
</select>
es funktioniert gut, wenn ich den Code in '' i don 'bekommen den Punkt, warum 'männlich' genau nicht funktioniert und' malex' funktioniert .. versuchen Sie es .. (Vergessen Sie nicht, den Wert in den JSONs Docs zu ändern) –
@Selem: Es ist, weil das "Female" "männlich" enthält, so dass es auch als eine Übereinstimmung zählt. Damit das funktioniert, müssen wir angular etwas sagen, um eine exakte Übereinstimmung zu erreichen, etwa
seltsames und kluges Verhalten :) Danke @ HoàngLong .. –
Antwort
Dies scheint zu funktionieren.
https://jsfiddle.net/kg2kscnw/14/
Wenn Sie den Komparator auf true gesetzt, setzt es einen strengen Vergleich der tatsächlichen und erwartete, so ist es, dass ‚männlich‘ nicht die gleiche wie ‚weiblich‘ zu sehen ist. Aber dann erkennt es nicht den leeren Wert des Feldes "Nach Geschlecht". Um dies zu umgehen, können Sie festlegen, dass der Filter nur angewendet wird, wenn der Wert nicht leer oder nicht definiert ist.
Hoffe, das hilft.
Quelle
2016-04-25 10:15:16 hughesjmh
Es scheint, dass Ihr Code in Ordnung funktioniert, obwohl ich das doppelte (!) Nicht verstehen kann. Könnten Sie bitte ein wenig ausarbeiten? –
Von dem, was ich verstehe, ist es nur ein Doppel "nicht" -Operator. Im Grunde wird der Filter angewendet, wenn der Wert nicht (der erste!) Leer (der zweite!) Oder nicht definiert ist. Übrigens scheint es zu funktionieren, wenn Sie beide "Nicht" -Operatoren ebenfalls entfernen, also ist es vielleicht nur da, um Verwirrung zu stiften;) – hughesjmh
From doc
Es funktioniert wie
String.Contains
Methode. Wenn Sie alsomale
aus dem Dropdown-Menü auswählen, werden alle Daten angezeigt, dafemale
auchmale
Unterzeichenfolge enthält.Quelle
2016-04-25 10:00:04
try this:
Quelle
2016-04-25 10:06:06
funktioniert nicht -> https://jsfiddle.net/kg2kscnw/15/ –
siehst du meine Antwort ??? ? –
Ja. Aber im Ausgangszustand sind nicht alle Daten belegt. –
Eigentlich Filter geben Sie das Ergebnis auf der Grundlage der übereinstimmenden Elemente.So weibliche Zeilen werden angezeigt, wenn Sie männlich aus Drop-down wählen, weil "weiblich" Wort das "männliche" Wort enthält.
Quelle
2016-04-25 10:36:35 Rahul
Verwandte Themen