Фильтруя функции Проблема
-
19-09-2019 - |
Вопрос
Я работаю над компонентом поиска для приложения, над которым я работаю, и мне нужно было добавить в него несколько фильтров. Я нашел пример и получил первый фильтр, работающий нормально.
Теперь я пытаюсь добавить второй фильтр, у меня возникают проблемы ... в примере, который я обнаружил, что они используют фильтровальные функции, но я получаю только опцию для фильтрации, почему это так?
Вот пример кода
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/