Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Consulta de dados usando filtro

Boa noite,

Gostaria de saber alguém se é possível fazer consultas utilizando filtros da tela usando o ngResource do angularJs? Pelo que vi na documentação do ngResource, ele possui apenas os métodos: query, get, save, update e delete. Entretanto, preciso fazer uma consulta utilizando diversos filtros da tela. Aguardo resposta! Desde já agradeço!

4 respostas

Oi Marco, não muda do que vc aprendeu no curso. Você precisa ter um formulário com os campos para o usuário digitar.. Fazer o binding dos inputs com seu modelo no angular e na hora do click do botão, pegar essas informações e fazer um get para o seu servidor. O get serve justamente para isso, realizar uma ação de recuperação, como é uma busca.

Oi alberto, obrigado por responder! Entendi! Fiz um projeto e estou usando o ngResource. Para obter um $resource eu criei uma factory referente ao objeto que eu irei pesquisar. Na minha factory eu coloco uma url no método get e nela eu passa o id de um determinado registro que irei pesquisar. Meu problema é que, a url montada do jeito que está, funciona para eu alterar e deletar registros, mas para pesquisar registros preenchendo filtros na tela não funciona, por conta do parâmetro. Tentei pesquisar se tem como eu customizar minha factory para criar um método que permita passar uma url e um objeto como parâmetro, mas não encontrei. Sabe me dizer como eu faria nesse caso?

solução!

Oi Marco,

Vou dar um exemplo como se eu estivesse trabalhando com um e-commerce de camisas. Se eu quisesse ter um recurso pra pegar as camisas do servidor, eu teria algo desse tipo:

var recursoCamisas = $resource("/camisas/:id")

Se eu quisesse pegar uma camisa, poderia passar o id como parâmetro para a função get:

recursoCamisas.get({id: 2}, function(camisa){
    //camisa com id 2 aqui
})

O pedido que será feito para o servidor será feito com o método GET para o seguinte endereço: /camisas/2.

No caso de existirem filtros, a função get não seria uma boa já que você quer todas as camisas que batem os filtros selecionados, e não uma só. Pra isso você pode usar a função querypassando parâmetros num objeto. Um exemplo:

recursoCamisas.query({cor: 'vermelha', tamanho: 'G'}, function(camisas){
    //camisas G e vermelhas aqui
})

Ainda será feito um request com o método GET, porém agora, esperando um resultado com várias camisas. Os filtros serão passados como parâmetros

/camisas?cor=vermelha&tamanho=G

Entendi!! Agora fez mais sentido para mim!! Vou tentar com o query!! Muito obrigado Artur!