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!

Foi útil?

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/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top