嘿,大家只是关于Angular JS服务的结构性问题。
我有一个模块:
var mod = angular.module('myapp', []);
mod.config(function(){
// some various config stuff
});
我创建了三个服务,其中一些服务具有依赖性,一些服务具有一对一依赖性。
mod.service('service1', ['service2', function(service2){
}]);
mod.service('service2', ['service1', function(service1){
}]);
mod.service('service3', ['service1, service2', function(service1, service2){
}]);
由于它们都是在初始化模块myApp
时被声明的,那么这个结构会被允许吗?
答案 0 :(得分:2)
如果service1依赖于service2而service2依赖于service1,那么您已经引入了循环依赖关系,并在您的应用程序中获得了代码味道。 AngularJs是基于依赖注入构建的,并且循环依赖性禁用它。在某些情况下,这是一个可接受的解决方案,但在angularjs中,它不是。
解决此问题的一种方法是问问自己,service1和service2应该是一个服务吗?
阅读标记关于圈子依赖关系here的完美答案,以便更好地解释这一点。
答案 1 :(得分:1)
你可以这样做,当然。模块本身应该加载到app.js
,此时所包含的所有服务都可以在任何地方注入,包括其他服务。
那就是说,我不是100%肯定你在找什么。以上不起作用吗?