Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Argos

Busca facetada (filtros) com Angular

Recommended Posts

Olá, boa tarde a todos,

 

Criei um pequeno sistema pra filtrar diferentes tipos de usuários cadastrados em um site utilizando facetas (filtros) como os encontrados em algumas lojas virtuais (por exemplo, quando procuramos por notebooks e podemos refinar a pesquisa pela marca, tamanho de tela, sistema operacional, preço, etc).

Existem duas situações nesse sistema: uma que filtra pelo tipo de usuário (que pode ser um profissional, uma empresa ou uma academia), e outra q filtra pela área de atuação desses usuários. Segue um JSON para uma breve ilustração dos usuários:

[{
        nome: "Maria de Souza Silva",
        tipo: "Profissionais",
        atuacao: "Educação Física, Fitness (academia)",
        estado: "PR"
    }, {
        nome: "Sup Suplementos",
        tipo: "Empresas",
        atuacao: "",
        estado: "SP"
    }, {
        nome: "Fulano de Tal",
        tipo: "Profissionais",
        atuacao: "Beleza / Estética",
        estado: "MT"
    }, {
        nome: "Training Academia",
        tipo: "Academias",
        atuacao: "",
        estado: "PR"
    }, {
        nome: "Sicrano de Moraes",
        tipo: "Profissionais",
        atuacao: "Beleza / Estética",
        estado: "SP"
}];

O filtro por tipo está ok, mas estou com dificuldades em criar o filtro por área de atuação.

Por se tratar de uma propriedade com multiplos valores (veja a Maria de Souza Silva, que atua nas áreas 'Educação Física' e 'Fitness (academia)', faço um Split pela virgula para criar os itens da faceta e depois, usando indexOf, vejo se esse item se encontra na propriedade 'atuacao'.

Acontece que, apesar de conseguir o retorno de um objeto contendo apenas os usuários cuja atuação combina com o filtro, esse objeto não atualiza o HTML corretamente. Já filtro por tipo retorna um objeto identico e atualiza a View corretamente. Alguém poderia, por favor, me explicar onde estou errando?

Segue link para que possam vê-lo em funcionamento (ou em não-funcionamento....):

 

http://plnkr.co/edit/lJoK2OOvgvdME0QaGcEN?p=preview

 

Desde já agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.