Filterfunktionen Problem
-
19-09-2019 - |
Frage
Ich arbeite an einer Suchkomponente für eine App, an der ich arbeite, und ich musste einige Filter hinzufügen. Ich habe ein Beispiel gefunden und den ersten Filter gut funktioniert.
Jetzt versuche ich, einen zweiten Filter hinzuzufügen, den ich auf Probleme stöbere. In dem Beispiel, in dem ich festgestellt habe, dass sie Filterfunktionen verwenden, erhalte ich nur eine Option für Filterfunktionen, warum ist das so?
Hier ist der Beispielcode
productsCollection.filterFunctions =
[
filterByPrice, filterByType,
filterByCondition, filterByVendor
]
Und das versuche ich
acData.filterFunction = [filterByStatus, filterByDate]
Mit diesem Code erhalte ich jedoch die folgende Fehlermeldung - 1067: implizite Zwang eines Wertes des Typs Array zu einer nicht verwandten Typfunktion.
Warum bekomme ich diesen Fehler und wie würde ich meiner Array -Sammlung mehrere Filter hinzufügen?
Vielen Dank!
Lösung
filterFunction
muss auf eine einzelne Funktion eingestellt werden, nicht auf eine Array
oder ein anderer Datentyp. Um mehrere Funktionen zu kombinieren, erstellen Sie eine, die sie kombiniert, wie folgt:
acData.filterFunction = function(item:Object)
{
return
filterByPrice(item) &&
filterByType(item) &&
filterByCondition(item) &&
filterByVendor(item);
};
Wenn Sie eine Probe gesehen haben, die verwendet wurde filterFunctions
Plural, der ein Array akzeptierte, einen Link veröffentlichen. Das ist nirgendwo im Standard -Flex -Framework oder im neuen 4.0 Beta -Afaik.
Andere Tipps
Es sieht so aus, als müssten Sie eine ArrayCollection verlängern, damit sie funktioniert. Dieser Link sollte es für Sie darstellen: http://blog.rotundu.eu/flex/arraycollection-with-multiple-filter-functions/