Angular: 如何创建内部工具但不与模块一起导出

Angular: How to create internal utils but do not export with module

我正在创建一个 angular 模块 MyModule。该模块包含许多子模块。

angular.module('MyModule', [
  'MyModule.SubModule1',
  'MyModule.SubModule2',
  'MyModule.SubModule3'
]);

angular.module('MyModule.SubModule1', [
  'MyModule.Util'
]);

如你所见,有一个模块MyModule.Util提供了辅助函数,实际上是写在工厂里的。无论我是否显式导出 MyModule.Util,它都会与我的所有模块一起导出。

但我希望这个 MyModule.Util 仅供内部子模块使用。这可能吗?

截至今天 (v1.4.5) Angular 不可能

一旦您声明了模块依赖关系,Angular 就会从依赖关系树中导入所有模块,并使它们对整个应用程序可用。

如果您只需要辅助函数(而不是 Angular services/directives/controllers),那么您可以只使用 "private" 函数:

(function(angular){

  function privateHelperFunction1(){
  }

  angular.module("MyModule.SubModule1", [])
    .service("FooSvc", function(){
      this.doSomething = privateHelperFunction1;
    })

})(angular)