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)
我正在创建一个 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)