Ответ 1
Нет большой разницы, когда вы помещаете ng-app
.
Если вы положите его на <body>
, тогда у вас будет меньше возможностей для AngularJS, который быстрее слегка.
Но я использовал ng-app
в <html>
для управления <title>
.
Недавно я рассмотрел код для webapp, построенный с помощью angular, и обнаружил, что он был написан с помощью директивы ng-app="myModule"
, помещенной в тег <body>
. Изучая angular, я только когда-либо видел его в теге <html>
, как рекомендовано angular docs здесь, здесь и в tutorial.
Я изучил это немного самостоятельно и нашел SO вопросы, особенно этот и аналогично этот, которые обсуждают загрузку нескольких модулей для страницы. Однако этот метод отличается от моего случая, поскольку он включает размещение ng-app в элементах внутри тела и использование ручной начальной загрузки для одновременного запуска двух приложений angular.
Насколько я могу судить, во время выполнения между приложением с ng-app
на <html>
или <body>
нет разницы. Как я понимаю, ng-app
обозначает корень приложения angular, поэтому размещение его в <body>
сократит область <head>
из angular, но я не могу представить, каким образом это повлияет на вещи. Поэтому мой вопрос: какова техническая разница между размещением ng-app
на одном из этих тегов вместо другого?
Нет большой разницы, когда вы помещаете ng-app
.
Если вы положите его на <body>
, тогда у вас будет меньше возможностей для AngularJS, который быстрее слегка.
Но я использовал ng-app
в <html>
для управления <title>
.
Я был в команде, работающей над устаревшим приложением, и нашел, что лучше использовать тег ng-app в div, который используется как оболочка, чтобы изолировать новый код от устаревшего кода.
Мы обнаружили это при работе над приложением, которое в значительной степени полагалось на jqGrid и Dojo.
Когда мы добавили ng-app в заголовок, он взорвал сайт, но когда мы использовали обертку, мы могли бы без проблем использовать Angular.
AngularJS загрузит первое ng-приложение, которое он найдет! Это. Если у вас более одного ng-приложения, он обрабатывает только первый. Если вы хотите перезагрузить любой другой элемент, используйте angular.bootstrap()
Значение атрибута ng-app - это модуль, который был создан с помощью:
angular.module("module_name", [])
Модуль определяет, как angular будет загружаться, потому что у нас нет метода main(), в отличие от других языков программирования. Если значение ng-app пустое, то по умолчанию используется 'ng' - модуль по умолчанию.
Было сказано, что он немного быстрее, потому что angular будет обрабатывать все элементы внутри элемента, где было ng-app. Но я немного сомневаюсь, потому что разница будет едва заметной вообще, если у вас очень громоздкий DOM.
Если вам нужны примеры здесь: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html