Улучшить эту документацию Просмотреть исходный код ngApp
- директива в модуле ng
Используйте эту директиву для автоматической инициализации приложения AngularJS. Директива ngApp обозначает корневой элемент приложения и обычно размещается рядом с корневым элементом страницы — например, на тегах <body> или <html>.
При использовании ngApp следует учитывать несколько моментов:
- в одном документе HTML может быть только одно приложение AngularJS, инициированное автоматически. Первая директива
ngAppв документе будет использована для определения корневого элемента, который будет инициирован как приложение. Чтобы запустить несколько приложений в одном документе HTML, необходимо инициализировать их вручную, используяangular.bootstrap. - приложения AngularJS не могут быть вложены друг в друга.
- Не используйте директиву, использующую трансклюзию, на том же элементе, что и
ngApp. Это относится к таким директивам, какngIf,ngIncludeиngView. В таком случае неправильно устанавливается элемент приложения$rootElementи инжектор приложения, что приводит к остановке работы анимаций и невозможности доступа к инжектору извне приложения.
Можно указать модуль AngularJS, который будет использоваться в качестве корневого модуля приложения. Этот модуль будет загружен в $injector при инициализации приложения. Он должен содержать необходимый код приложения или зависеть от других модулей, содержащих этот код. См. angular.module для получения дополнительной информации.
В примере ниже, если директива ngApp не была размещена на элементе html, документ не был бы скомпилирован, AppController не был бы создан, а {{ a+b }} не был бы разрешен в 3.
ngApp является наиболее простым и распространённым способом инициализации приложения.
Используя ngStrictDi, вы увидите что-то вроде этого:
Справочная информация о директиве
- Эта директива выполняется на приоритете 0.
Использование
- в качестве элемента: (Эта директива может быть использована как пользовательский элемент, но следует учитывать ограничения в IE).
<ng-app ng-app="angular.Module" [ng-strict-di="boolean"]> ... </ng-app>
- в качестве атрибута:
<ANY ng-app="angular.Module" [ng-strict-di="boolean"]> ... </ANY>
Аргументы
| Параметр | Тип | Описание |
|---|---|---|
| ngApp | angular.Module | название модуля приложения (необязательный), который нужно загрузить. |
| ngStrictDi (необязательный) | boolean | если этот атрибут присутствует на элементе приложения, инжектор будет создан в режиме «strict-di». Это означает, что приложение не сможет вызывать функции, не использующие явное аннотирование функций (и, следовательно, непригодные для минификации), как описано в руководстве по инъекции зависимостей, и полезная отладочная информация поможет отследить причину этих ошибок. |
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ng/directive/ngApp