Recientemente revisé el código de una aplicación web construida con angular y descubrí que estaba escrito con la ng-app="myModule"
directiva colocada en la <body>
etiqueta. Al aprender angular, solo lo he visto usar en la <html>
etiqueta, como lo recomiendan los documentos angulares aquí , aquí y en su tutorial .
He explorado esto un poco por mi cuenta y encontré SO preguntas, en particular esta y de manera similar esta , que discuten la carga de varios módulos para una página. Sin embargo, esta técnica es diferente a mi caso, ya que implica colocar ng-app en elementos dentro del cuerpo y usar bootstrapping manual para ejecutar dos aplicaciones angulares al mismo tiempo.
Por lo que yo puedo decir, no hay ninguna diferencia en tiempo de ejecución entre una aplicación con ng-app
el <html>
o <body>
. Según tengo entendido, ng-app
designa la raíz de una aplicación angular, por lo que su colocación en el <body>
corte quedaría <head>
fuera del alcance de angular, pero no puedo pensar en ninguna forma importante en que esto afectaría las cosas. Entonces, mi pregunta es: ¿Cuál es la diferencia técnica entre colocar ng-app
una de estas etiquetas en lugar de la otra?
Estaba en un equipo que trabajaba en una aplicación heredada y descubrí que era mejor usar la etiqueta ng-app en un div que se usa como contenedor para aislar el nuevo código del código heredado.
Descubrimos esto mientras trabajábamos en la aplicación que dependía en gran medida de jqGrid y Dojo.
Cuando agregamos ng-app a la etiqueta head, hizo explotar el sitio, pero cuando usamos un contenedor, pudimos usar Angular sin problemas.
fuente
¡AngularJS arrancará la primera aplicación ng que encuentre! Eso es. Si tiene más de una ng-app, solo procesará la primera. Si desea arrancar cualquier otro elemento, use angular.bootstrap ()
El valor del atributo ng-app es un módulo que se ha creado usando:
Un módulo define cuán angular se iniciará porque no tenemos un método main () a diferencia de otros lenguajes de programación. Si el valor de ng-app está vacío, por defecto usa 'ng', el módulo predeterminado.
Se dijo que era un poco más rápido porque angular procesará todos los elementos dentro del elemento donde estaba ng-app. Pero dudo ligeramente en parte porque la diferencia apenas se notará, a menos que tenga un DOM muy voluminoso.
Si quieres ejemplos aquí: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html
fuente