Problema de funções de filtro
-
19-09-2019 - |
Pergunta
Estou trabalhando em um componente de pesquisa para um aplicativo em que estou trabalhando e precisava adicionar alguns filtros a ele. Encontrei um exemplo e consegui o primeiro filtro funcionando bem.
Agora estou tentando adicionar um segundo filtro que estou enfrentando problemas ... no exemplo que achei que eles usam funções de filtro, mas só recebo uma opção para função de filtro, por que isso?
Aqui está o código de exemplo
productsCollection.filterFunctions =
[
filterByPrice, filterByType,
filterByCondition, filterByVendor
]
E é isso que estou tentando
acData.filterFunction = [filterByStatus, filterByDate]
Mas com este código, recebo a seguinte mensagem de erro - 1067: coerção implícita de um valor de tipo de tipo de tipo para uma função de tipo não relacionada.
Por que estou recebendo esse erro e como eu adicionaria vários filtros à minha coleção de matriz?
Obrigado!
Solução
filterFunction
deve ser definido como uma única função, não um Array
ou qualquer outro tipo de dados. Para combinar várias funções, crie uma que as combina, assim:
acData.filterFunction = function(item:Object)
{
return
filterByPrice(item) &&
filterByType(item) &&
filterByCondition(item) &&
filterByVendor(item);
};
Se você viu uma amostra que usou filterFunctions
plural que aceitou uma matriz, poste um link. Isso não está em nenhum lugar da estrutura Flex padrão ou no novo 4.0 beta Afaik.
Outras dicas
Parece que você terá que estender uma coleta de Array para fazê -lo funcionar. Este link deve soletrar para você: http://blog.rotundu.eu/flex/arraycollection-with-multiple-filter-functions/