我有几个模块(Main
,Secondary
),并且它们具有依赖关系 - Stuff
,来自Stuff
两个服务使用{{1} }}。因此,来自Service
Service
的{{1}} Stuff
工作Main
服务连接Factory
仅存在于主服务中。但是Secondary
在Factory
无效,couse Main
是 angular.module('Main', ['Stuff']);
angular.module('Secondary', ['Stuff']);
angular.module('Stuff', []);
angular.module('Stuff').service('Service', ['Factory', function(Factory){}])
angular.module('Main').factory('Factory', function(){})
服务的依赖关系。
Factory
如果没有另外添加依赖,我可以进行一些检查,如:
Factory
? Secondary
:null,Factory
服务,在此服务中我不需要Factory
,此服务有自己的{{1}} :)?
答案 0 :(得分:1)
加载模块后,不再知道该服务属于哪个模块。只有一个Factory
,它被定义它的最后一个模块(Main
)覆盖。
为避免冲突,可以使用命名空间:
angular.module('stuff').service('service', ['stuff.factory', function(factory){...}])
angular.module('main').factory('main.factory', function(){...});
如果服务可能根本不存在(可选依赖项),则模式为
angular.module('stuff').service('service', ['$injector', function($injector){
var factory = $injector.has('factory') ? $injector.get('factory') : null;
...
}])