在彼此内部使用角度服务

时间:2015-06-26 22:28:34

标签: angularjs

您知道是否可以在对方内部使用角度服务?我尝试了但是得到了错误"发现循环依赖"。例如,我有两个服务A和B.我可以在服务A内使用服务A,在服务A中使用服务B吗?

1 个答案:

答案 0 :(得分:0)

不,您不能使用基本的angularjs依赖注入器,但您可以使用$ injector

检索任何服务

https://docs.angularjs.org/api/auto/service/$injector

所以可以“懒”将它加载到任何var,并在其他服务中访问它....但你应该发布一些代码。

也有点像你反模式的东西,或者当你有循环依赖时你有糟糕的架构。就像在路上一样:

假设您有2项服务

Foo Depends on Bar
Bar depends on Foo

Angular会像这样

Foo - >取决于酒吧所以加载Bar - >实例化Bar但它依赖于Foo,因此实例化Foo - >实例化Foo,但它取决于Bar但等待! Bar仍未实例化,因为它等待Foo,因此它是循环的。

你应该有服务

Foo with no dependency
Bar with no dependency

和第三家工厂

FooBar which will handle functions which needs the circular dependency.