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

AngularJS com jQuery

Olá! Percebi que podemos usar jQuery com as diretivas do Angular. Gostaria de saber se posso continuar usando meu jQuery (quando necessário), separado em outro documento JavaScript como faço normalmente quando não estou usando Angular? Isso seria uma má pratica? Obrigado.

4 respostas

Você pode usar jQuery com Angular, contanto que seja apenas em diretivas e jamais dentro de um controller. Qual o motivo disso? Um controller é altamente testavel em uma aplicação Angular porque ele não manipula DOM (isso se você tem interesse na parte de testes).

Se você usar jQuery dentro de um controller, estará interagindo com o DOM e amarrando seu controller tornando-o difícil de testar.

É tipo assim, tudo o que a equipe do Angular fez para evitar que você tenha que manipular DOM você estaria jogando no lixo.

Porém, usar jQuery em diretivas é completamente viável, pois este é o local onde há uma licença poética para manipulação de DOM. Teste de diretivas são diferentes de testes de controllers, cada um fica isolado.

Um fato curioso Bruno, é que o Angular já vem um "mini" jQuery embutido nele para você usar em suas diretivas. É o jQLite, porém ele não tem tudo que o jQuery suporta. Se você carregar o jQuery antes do Angular, o Angular deixa de usar o jqLite e passa a usar o jQuery.

O ideal é você tentar se virar apenas com o jqLite, porque adicionar o jQuery aumentará o peso de suas páginas no primeiro carregamento.

Consegui tirar sua dúvida?

Sucesso e bom estudo Bruno!

Bruno, blz? Se tirei sua dúvida não deixe de fecha-lá marcando minha respostas como solução.

Abraço.

Olá! Entendi bem esta parte, porém ainda estou na dúvida se posso usar o meu jQuery separadamente. Por exemplo: gostaria de criar um arquivo chamado javascript.js e lá dentro colocar somente código em jQuery e importar esse javascript.js no meu html junto com os arquivos do Angular. Esse arquivo criado teria por exemplo o código de um carrossel somente em jQuery que eu uso no desenvolvimento dos sites.

solução!

Isso pode ser feito, mas não é o jeito angular de se fazer as coisas. O politicamente correto no framework e fazer manipulação de DOM em diretivas.