Recentemente, revisei o código de um webapp construído com angular e descobri que foi escrito com a ng-app="myModule"
diretiva colocada na <body>
tag. Quando aprendi angular, eu só o vi usado na <html>
tag, conforme recomendado pelos documentos do angular aqui , aqui e em seu tutorial .
Eu explorei isso um pouco por conta própria e encontrei perguntas do SO, notavelmente esta e da mesma forma esta , que discute o carregamento de vários módulos para uma página. No entanto, essa técnica é diferente do meu caso, pois envolve colocar o ng-app em elementos dentro do corpo e usar bootstrap manual para executar dois aplicativos angulares ao mesmo tempo.
Tanto quanto eu posso dizer, não há diferença no tempo de execução entre um aplicativo com ng-app
on <html>
ou <body>
. Pelo que entendi, ng-app
designa a raiz de um aplicativo angular, portanto, sua colocação no <body>
cortaria <head>
fora do escopo do angular, mas não consigo pensar em nenhuma maneira importante de como isso afetaria as coisas. Portanto, minha pergunta é: Quais são as diferenças técnicas entre colocar ng-app
em uma dessas tags em vez da outra?
Eu estava em uma equipe que trabalhava em um aplicativo legado e achei melhor usar a tag ng-app em um div que é usado como um wrapper para isolar o novo código do código legado.
Descobrimos isso ao trabalhar no aplicativo que dependia muito do jqGrid e do Dojo.
Quando adicionamos ng-app à tag head, o site explodiu, mas quando usamos um wrapper pudemos usar o Angular sem problemas.
fonte
O AngularJS inicializará o primeiro ng-app que encontrar! É isso aí. Se você tiver mais de um ng-app, ele processará apenas o primeiro. Se você quiser inicializar qualquer outro elemento, use angular.bootstrap ()
O valor do atributo ng-app é um módulo que foi criado usando:
Um módulo define como o angular será inicializado porque não temos um método main () diferente de outras linguagens de programação. Se o valor de ng-app estiver vazio, o padrão é usar 'ng', o módulo padrão.
Foi dito que era um pouco mais rápido porque o angular processará todos os elementos dentro do elemento onde o ng-app estava. Mas eu duvido um pouco porque a diferença dificilmente será notada, a menos que você tenha um DOM muito volumoso.
Se você quiser exemplos aqui: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html
fonte