Я пытаюсь построить модульное приложение с помощью AngularJS. Моя первая идея состоит в том, чтобы сгруппировать каждый модуль по functionnality с такой структурой папок:Модульное приложение AngularJS: один или несколько модулей AngularJS?
/core
controllers.js
directives.js
app.js
/modules
/users
controllers.js
directives.js
/invoices
controllers.js
directives.js
/messages
controllers.js
directives.js
...
Обратите внимание, что папка «ядро» содержит азам функции, которые всегда будут в приложении. Другие модули могут быть добавлены или удалены независимо.
Поскольку мое приложение будет большим, я также хочу использовать ленивую загрузку. Я реализовал это решение: http://ify.io/lazy-loading-in-angularjs/, который кажется мне самым простым способом. Проблема заключается в том, что он выполняет ленивую загрузку только для контроллеров, служб, директив ... но не для модулей AngularJS.
Я знаю, что есть другой способ, который позволяет ленивой нагрузке Угловые модули (http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/), но я думаю, что это слишком хаки, поскольку использует основные методы Angular.
Мой вопрос: есть ли смысл в моем случае использовать различные AngularJS модули для каждого из моих модулей, например:
angular.module('core', ['ngRoute', 'users', 'invoices', 'messages'])
angular.module('users')
angular.module('invoices')
angular.module('messages')
В чем преимущество такого подхода? Являются ли модули AngularJS полезными - на данный момент - только для сторонних модулей для Angular?
Я спрашиваю об этом, так как AngularJS 2.0 будет поддерживать изначально ленивую загрузку. Miško Hevery из Google говорит: «[вы] должны группироваться по виду, поскольку в ближайшем будущем представления будут ленивы загружены», и что мы должны использовать один модуль для каждой заявки, см. Здесь: https://www.youtube.com/watch?v=ZhfUv0spHCY&t=34m19s
Правильно для большого приложения просто использовать один модуль для моего приложения, как это:
angular.module('core', ['ngRoute']);
А потом ленивые нагрузки моих контроллеров, услуги и директивы основаны на маршрут или виде?