首先,我的问题的一些上下文,也在MEAN.JS docs中解释:我的角度应用Foo
是从init.js
文件引导的,该文件包含以下行:
angular.element(document).ready(function () {
angular.bootstrap(document, ['FooCore']);
});
我的FooCore
应用程序有几个供应商依赖项,我在其setter中以正常方式列出,就在此行之前。
接下来,我的应用程序的组件(搜索,个人资料,仪表板等)都在他们自己的模块中。每次我声明FooCore
的子组件时,我都会将其添加到其依赖项中:
angular.module('FooCore').requires.push('ModuleBar');
所以,从逻辑上讲,我所有应用程序的组件都能够相互通信(例如共享指令),这对我来说很有意义。我的问题是这样的:说ModuleBar
有一个只有它需要的供应商依赖X - 所以我在ModuleBar
的setter中声明了这个依赖 - 为什么X可用于我的所有兄弟组件FooCore
应用?这是一个直观的表示:
FooCore
|----ModuleBar => angular.module('ModuleBar', ['vendor-X']);
| |---- vendor-X
|
|----ModuleBaz => angular.module('ModuleBaz', []);
vendor-X
只能提供ModuleBar
吗?为什么我发现ModuleBaz
也可以使用它?