Подзависимости модуля AngularJS доступны для родственных модулей?

Во-первых, некоторый контекст для моего вопроса, который также объясняется в документах MEAN.JS: мое угловое приложение Foo загружается из моего файла init.js, в котором есть эта строка:

angular.element(document).ready(function () {
  angular.bootstrap(document, ['FooCore']);
});

Мое приложение FooCore имеет несколько зависимостей от поставщиков, которые я обычно перечисляю в его установщике, что происходит непосредственно перед этой строкой.

Затем компоненты моего приложения (поиск, профиль, панель инструментов и т. д.) находятся в своих собственных модулях. Каждый раз, когда я объявляю подкомпонент FooCore, я добавляю его к его зависимостям с помощью:

angular.module('FooCore').requires.push('ModuleBar');

Таким образом, логически все компоненты моего приложения могут взаимодействовать друг с другом (например, совместно использовать директивы), что для меня имеет смысл. Мой вопрос таков: скажем, ModuleBar имеет зависимость от поставщика X, которая нужна только ему, поэтому я объявляю эту зависимость в установщике ModuleBar - почему X доступен для всех одноуровневых компонентов моего приложения FooCore? Вот визуальное представление:

FooCore
|----ModuleBar => angular.module('ModuleBar', ['vendor-X']);
|    |---- vendor-X
|
|----ModuleBaz => angular.module('ModuleBaz', []);

Разве vendor-X не должно быть доступно только ModuleBar? Почему я обнаружил, что он также доступен для ModuleBaz?


person JaKXz    schedule 21.05.2015    source источник
comment
Похоже, у кого-то еще были подобные мысли: michalostruszka.pl/ блог/2015/05/21/   -  person JaKXz    schedule 22.05.2015