Значение пустого массива в объявлении модуля angularJS
В моем предыдущем вопросе я понимаю, что код var app = angular.module('myApp', []);
подключает модуль app
на вид myApp
,
Я хотел бы знать, почему у нас есть пустой массив []
в объявлении модуля.
Для чего используется пустой массив?
3 ответа
Этот массив предназначен для добавления различных модулей в ваш текущий
app
который упоминается в вашей первой частиangular.module
as string`, вы можете просто сказать, что вводите различные зависимости.
Вы могли бы создать n
номер модуля внутри вашего приложения для каждого компонента angular
И тогда вы можете объединить их в одно приложение, и вы можете angular.bootstrap
или примените его на странице, используя ng-app
директивы.
пример
Предположим, у вас есть приложение, которое имеет различные компоненты, такие как службы, фабрики, фильтры, директивы и т. Д. Вы можете создать модуль для каждого из них. Просто для разделения интересов.
angular.module('myApp.filters', [])
angular.module('myApp.services', [])
angular.module('myApp.controllers', [])
angular.module('myApp.directives', [])
angular.module('myApp.constants', [])
И при добавлении компонента к нему вы можете просто использовать этот конкретный модуль. Как вы хотели добавить сервис, то вы просто добавляете этот сервис в myApp.services
при выполнении
angular.module('myApp.services').service('example', function(){
})
И затем внутри вашего app.js вы можете объединить все эти модули в один модуль, как показано ниже.
angular.module('myApp', [
'myApp.services',
'myApp.controllers',
'myApp.directives',
'myApp.directives',
'myApp.constants'
])
При инициализации приложения вы можете просто использовать myApp
внутри, это сделало бы доступным для него все остальные модули.
Для чего используется пустой массив?
В своем коде вы создаете модуль, который не вводит никакой зависимости, []
что означает, что он не зависит от других angular
модуль.
Зависимость вводится внутри
[]
ничего, кроме импорта модуля
angular.module('app', [])
это создать новый модуль без какой-либо зависимости от модуля.
angular.module('app')
чтобы получить существующий модуль, имя которого app
,
API Angulars говорит Passing one argument retrieves an existing angular.Module, whereas passing more than one argument creates a new angular.Module
https://docs.angularjs.org/api/ng/function/angular.module