Основной формой организации приложений в AngularJS являются модули. Модуль представляет хранилище различной информации: директив, фильтров, контроллеров и т.д. При этом одно приложение может иметь несколько модулей. Например, разные модули могут представлять какую-либо специфическую функциональность.
Модули позволяют ассоциировать определенный участок html-страницы с приложением AngularJS. Модули также позволяют организовать и структурировать различные компоненты приложения AngularJS. Кроме того, модульность архитектуры приложения повышает тестируемость, и мы можем использовать различные части-модули приложения в других приложениях.
Для создания модуля используется метод angular.module(). Этот метод принимает три параметра, два из которых являются обязательными:
В качестве результата метод angular.module() возвращает объект Module. Например, создадим модуль:
var myApp = angular.module('myApp', []);
Здесь создается модуль myApp. Вместо набора модулей, передаваемых вторым параметром, мы можем отставить пустым массивом. В то же время было бы ошибкой вообще убрать этот параметр. Так как выражение var myApp = angular.module('myApp'); будет представлять попытку получить модуль myApp в одноименную переменную, а не создать его.
Чтобы ассоциировать модуль с определенным куском html-страницы, нужно использовать директиву ng-app:
<html ng-app="myApp">
Используя модуль, мы можем определить ряд компонентов, таких как контроллеры, сервисы и т.д., которые затем применяются в приложении. Для этого объект Module имеет ряд методов, наиболее используемые из них: