Вопрос

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

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

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

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

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

acData.filterFunction = [filterByStatus, filterByDate]

Но с помощью этого кода я получаю следующее сообщение об ошибке - 1067: неявное принуждение значения массива типа к не связанной функции типа.

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

Спасибо!

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top