2015-08-10 2 views
3

Мне кажется, что большинство файлов AngularJS (* .js), которые я видел до сих пор, содержит только один модуль, а имя модуля не всегда совпадает с именем файла.Можно ли написать один файл JavaScript, содержащий несколько модулей?

Я хотел бы знать, работает ли это путем помещения нескольких модулей внутри одного файла AngularJS (* .js).

Также, как сервер находит правильное имя модуля, когда веб-страница выполняет вызов функции? Просматривая каждый файл в каталоге грубым образом?

ответ

2

Вы можете разместить столько модулей, сколько захотите, в файле (но не обязательно лучше всего). Угловой знает, какой модуль загрузить, потому что вы регистрируете каждый модуль с помощью Angular.

angular.module('myModule', []) 

Таким образом, он не должен искать модули на основе соглашения.

1

Да, все в порядке, чтобы поместить несколько модулей в один файл. Вы должны зарегистрировать все доступные модули до того, как приложение будет загружено, иначе оно даст вам ошибку зависимостей. Страница на dependency injection объясняет все это.

2

Имя модуля указано в вашем HTML, используя ng-app="yourModule" в HTML-элементе. Наличие нескольких модулей в одном файле не является проблемой вообще. На самом деле это то, что делают процессы минимизации и обфускации для готового кода производства: объедините все ваши Javascript-коды в одном файле.

То, что я хотел бы предложить:

  • Используйте несколько файлов в режиме разработки для наглядности
  • Использование минификация иметь только один файл в производстве в целях повышения эффективности
1

Это хорошая практика использования разных файлов для каждой декларации модуля. Вы можете ознакомиться с нижеследующим руководством: Angular Style Guide

Вы регистрируете каждый модуль с помощью angular.module и определяете свои службы, контроллеры и т. Д., Используя определенные модули.

angular.module("myApp", []); // module is registered 
angular.module("myApp").service("myService", function(){}); // service is declared for myApp module. 
Смежные вопросы