Моего приложения следующий Джона Папа styleguide для AngularJS приложений:Настройки общих служб между несколькими модулями в AngularJS
стилистического справочник подчеркивает, используя сильно модульный подход к проектированию приложения. Мой вопрос касается нескольких конфигураций и их влияния на общие службы.
Предположим, что у меня есть главный модуль, как это:
angular.module("app", ["app.feature1"])
.config(function() {
// do some configuration here
console.log("app configured");
});
и модуль функции, настраивающий общую угловую услугу, скажем, сервис $ Http:
angular.module("app.feature1", [])
.config(function($http) {
// configure the $http service
console.log("feature1 configured");
});
ли мое понимание правильно, что конфигурация «feature1» будет перенесена на главный модуль, поскольку служба $ http является одноэлементной и, следовательно, разделяется между модулями? Или мне нужно настроить службу $ http в основном модуле вместо этого, потому что каждый модуль имеет свой собственный экземпляр службы http http?
Редактировать: я могу подтвердить, что конфигурации зависимостей переносятся и выполняются первыми. См. Пример jsfiddle Дэвида.
Я прав, так как «app.feature1» является зависимостью корневого модуля, «app.feature1» будет создаваться перед конфигурацией основного модуля, и поэтому блок конфигурации функции1 будет выполняться первым? – maxmantz
Если вы посмотрите на типичное угловое приложение и намеренно «сложите» что-то в загруженной зависимости, что произойдет? Вы обнаружите, что следующий код в основном модуле не загружен. Я предполагаю, что здесь, но я считаю, что Angular загружает модули для детей сначала, а затем загружает родительский модуль, который их вводил. Тем не менее, я не могу быть уверен, что '.config()' для ребенка вызывается перед родителем. Возможно, он только строит график зависимости. –
Я могу подтвердить, что сначала выполняются конфигурации зависимостей. Спасибо! – maxmantz