在我的项目中,我将角度服务划分为不同的文件,每个文件/服务都应该属于一个名为“ com.mysite.services
”的公共模块,例如:
- 服务A.js
- 服务B.js
- 服务C.js
...等等
但是通过以这种方式定义它们:
angular.module('com.mysite.services', []).
service('ServiceA', function()
{
});
我覆盖每个文件的模块。为了解决这个问题,我定义了一个包装函数,如果未定义,它将创建模块,如果定义则返回对它的引用:
function angular_module(name, deps)
{
var m;
try
{
m = angular.module(name);
}
catch (e)
{
m = angular.module(name, deps || []);
}
return m;
};
所以,我可以简单地替换“。” 声明中带有“_”:
angular_module('com.mysite.services', []).
service('ServiceA', function()
{
});
这解决了我的问题,但我的问题是:有没有办法避免我的包装器支持 Angular-ish 解决方案?(看起来很愚蠢:P)