Значение пустого массива в объявлении модуля 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

Другие вопросы по тегам