проблема фильтрующих функций - PullRequest
2 голосов
/ 13 марта 2010

Я работаю над компонентом поиска для приложения, над которым работаю, и мне нужно было добавить в него несколько фильтров. Я нашел пример и получил первый фильтр работает нормально.

Теперь я пытаюсь добавить второй фильтр, с которым у меня возникают проблемы ... В примере, который я обнаружил, они используют filterFunctions, но у меня есть только опция для filterFunction, почему это так?

Вот пример кода

   productsCollection.filterFunctions =
[
 filterByPrice, filterByType,
 filterByCondition, filterByVendor
]

И это то, что я пытаюсь

acData.filterFunction = [filterByStatus, filterByDate]

но с этим кодом я получаю следующее сообщение об ошибке - 1067: неявное приведение значения типа Array к несвязанному типу Function.

Почему я получаю эту ошибку и как мне добавить несколько фильтров в мою коллекцию массивов?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 13 марта 2010

filterFunction должен быть установлен на одну функцию, а не на Array или любой другой тип данных. Чтобы объединить несколько функций, создайте такую, которая объединяет их, например:

acData.filterFunction = function(item:Object) 
    {
         return
             filterByPrice(item) &&
             filterByType(item) &&
             filterByCondition(item) &&
             filterByVendor(item);
    };

Если вы видели образец, который использовал filterFunctions во множественном числе, который принял массив, разместите ссылку Этого нет ни в стандартной среде Flex, ни в новой бета-версии 4.0 afaik.

0 голосов
/ 13 марта 2010

Похоже, вам придется расширить коллекцию массивов, чтобы она заработала. эта ссылка должна объяснить это для вас: http://blog.rotundu.eu/flex/arraycollection-with-multiple-filter-functions/

...