¿Por qué angular.js y jQuery no funcionan bien juntos?

Bueno, no necesitas específicamente jQuery en Angular.

¿Por qué?

Lea los primeros párrafos de este artículo: Cómo usar BootstrapJS y AngularJS juntos correctamente

Dice: ” Al construir proyectos angulares, no debe agregar en la biblioteca jQuery completa . jQlite ya está incluido en Angular y este debería ser todo el jQuery que sea necesario ”

Siga este [1] artículo para usar bootstrap junto con Angularjs.

Si desea utilizar otras bibliotecas de manipulación DOM (por ejemplo: herramientas Moo, kit de herramientas Dojo, guiones bajos), entonces sería difícil. Quizás tenga que buscar paquetes personalizados para angularjs o separar la parte angular de la aplicación con otra biblioteca js (lo cual es una locura).

Solo un segundo, ¿por qué estás usando angularjs? ¿Te has hecho esta pregunta?

Si su respuesta es, desea construir un tipo de aplicación SPA, entonces SÍ.

No use angularjs para la simple creación de plantillas (sé que la creación de plantillas es muy fácil en angular). Use algo más simple que esté hecho para este propósito (por ejemplo: manillar, bigote)

No utilice angular para un sitio web de una página: Overkill

No use angular solo porque quiera usar angular en un proyecto.

Notas al pie

[1] Cómo usar correctamente BootstrapJS y AngularJS juntos

jQuery y angular.js funcionan muy bien juntos. Intente usar ambos en su proyecto y no tendrá dudas. El poder de jQuery es la manipulación DOM: lo considero el mejor a este respecto.

La foto de arriba dice que viven muy bien en cualquier proyecto.

Una cosa más: cuando usa Bootstrap en su proyecto angular, entonces jQuery entra automáticamente en juego a medida que bootstrap usa jQuery.

Vea este tutorial de bootstrap: ¿Qué es Bootstrap y por qué debe usarlo en Desarrollo web?

Saludos,
Naina SIngh

angularJS (1.x) y jQuery tienen enfoques muy diferentes. JQuery está basado en eventos, mientras que angularJS utiliza enlaces y un bucle de resumen, donde los modelos y la interfaz de usuario se comprueban constantemente para detectar cambios.

jQuery usa acceso directo a un elemento mientras angularJS es similar a MVC, donde un controlador establece valores en un modelo y el tiempo de ejecución actualiza la vista en función de un modelo.

Dado que angularJS está diseñado para que el controlador no tenga información de la vista, es decir, los elementos con los que está trabajando, esto significa que no puede simplemente usar jQuery para modificar la vista directamente en el controlador. Angular no está diseñado de esta manera.

En su lugar, puede usar jQuery en la directiva (que pasa el elemento real) y asignar funciones de modificación de elementos a los métodos de alcance a los que se puede acceder a través del controlador.

Bueno, todo se reduce a COI (Inversión de control). jQuery se originó como un estándar para manipular DOM sin el mantenimiento de ningún modelo de datos. Mientras que, en AngularJS, el modelo de datos es lo que controla el DOM ya que el modelo es siempre la fuente de la verdad. Por lo tanto, transformar el DOM en un modelo se deja a Angular para que lo descubra.

No es que no funcionen bien juntos. No hay nada que impida que jquery manipule el DOM en una aplicación angular. Pero imagine escenarios en los que Angular ha transformado un nodo basado en un modelo pero jquery intenta hacer lo mismo. ¿Cuál debería funcionar y cuál no? Sería una carrera por el control sobre el nodo. Por lo tanto, es desalentado.

Bueno, Angular solo es suficiente. Realmente no necesita usar Jquery en una aplicación angular hasta que, a menos que haya alguna biblioteca que esté usando y dependa de jquery.

A veces es el problema de la versión lo que crea muchos problemas, ya que la implementación se vuelve diferente si se trata de una versión principal.

De todos modos, angular utiliza internamente jQuery.

Espero que esto ayude. 🙂