gleber1
@gleber1

Должно ли быть больше одного модуля в приложении angular?

Речь идет о app.module
Его делают только единожды ?
И можно на примере интернет магазина скажем привести , какие там могут быть модули обязательные для того чтобы их выносить отдельно. Потому что я всегда модулями представлял скажем корзину и делал для нее скажем фабрику .и это получался модуль в мое понимании . Или например страница может быть модулем?
  • Вопрос задан
  • 278 просмотров
Решения вопроса 2
@Kano
Angularjs предназначен для одностраничных приложений - spa. Вы можете делать каждый раздел приложения в отдельный модуль. Мало того каждуый функциональный блок не связанный с логикой раздела в отдельном модуле и даже просто наборы более менее универсальных директив и сервисов выносить в отдельные модули.
Модуль по сути это пространство имен в данном случае именами будут сервисы, директивы, контроллеры и т.д.
Подключив модуль вы даете возможность использовать его сервисы в своем модуле через DI
Ответ написан
@kostiknoir
Модуль по сути это пространство имен в данном случае именами будут сервисы, директивы, контроллеры и т.д.


Неверно. Например если есть

file1.js

var m1 = angular.module('module1', []);
m1.service('myService', function() {});


file2.js
var m2 = angular.module('module2', []);
m2.service('myService', function() {});


то в зависимости от того, кто будет загружен последним, тот и перепишет определение сервиса с именем myService

Для того, чтобы избежать подобной ситуации нужно добавлять пространство имён в имя сервиса. Т.е.
var m1 = angular.module('module1', []);
m1.service('module1.myService', function() {});

var m2 = angular.module('module2', []);
m2.service('module2.myService', function() {});


----------------------
Ответ по теме:

Технически объявлять что-либо в отдельном модуле имеет смысл только в том случае если это будет использоваться где-то ещё. Т.е. если создаётся библиотека или набор повторно используемых компонентов (сервисов, фильтров, директив и т.д.).
Если же компоненты (сервисы, фильтры, директивы и т.д.) будут использоваться только для данного приложения то не существует причины для того чтобы объявлять компоненты в другом модуле.
Angular.js с версией 1.* не делает различий между одноимёнными компонентами, которые определены в разных модулях.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы