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!

War es hilfreich?

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/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top