Ответ 1
Я не думаю, что Крейг спрашивает, что делает ng-app
или как это работает.
Я думаю, он спрашивает, почему люди, которые создали angular, называют эту директиву ng-app
. Почему они не назвали его ng-module
. ng-module
было бы легче понять.
Например, ng-controller
должен назвать контроллер, ng-module
должен назвать модуль. Методы angular
для их создания называются module()
и controller()
, нет метода или объекта под названием "приложение".
Я склонен согласиться с Крейгом. Тем не менее, если бы я подумал, почему они назвали его ng-app
, я бы подумал, потому что вам разрешено иметь только одну директиву ng-app
в вашем HTML. Если вы хотите иметь более одного модуля, связанного с вашей HTML-страницей, вы можете сделать это программно.
Итак, ng-app
- это скорее утилита для загрузки вашего HTML с помощью модуля, это не общий способ связывания модулей с вашим HTML.
Если вы посмотрите на документацию, что она предлагает:
Используйте эту директиву для автоматической загрузки приложения AngularJS. Директива ngApp обозначает корневой элемент приложения и обычно помещается около корневого элемента страницы - например, на или теги.
Только одно приложение AngularJS может быть автоматически загружено на каждый HTML-код документ. Первый ngApp, найденный в документе, будет использоваться для определения корневой элемент для автоматической загрузки в качестве приложения. Чтобы запустить несколько приложения в документе HTML, вы должны вручную загрузить их используя вместо этого angular.bootstrap. Приложения AngularJS не могут быть вложенные друг в друга.
http://docs.angularjs.org/api/ng/directive/ngApp
Все сказанное, если вы хотите директиву ng-module
, вы всегда можете написать свой собственный, чтобы обернуть функцию angular.bootstrap()
. Вы можете найти более подробную информацию и код о том, как это сделать в сообщении в блоге, которое я написал об этом: AngularJS: обойти ограничения ngApp с помощью ngModule