我有以下循环依赖:
$http
/ \
/ \
/ \
/ \
LoginManager------Interceptor
(service) (factory)
这个循环依赖只在我添加了Interceptor的代码后才出现。
Interceptor
会在LoginManager
中调用退出功能,以防截获某个response
。
从我看到的,唯一的解决方案是将
LoginManager
服务中的拦截器代码移动为anonymous factory
还有更好的方法吗?
答案 0 :(得分:5)
通过使用injector
服务在运行时获取LoginManager
的实例,可以避免循环依赖。
var loginManager = $injector.get('LoginManager');
请确保在拦截器的某个方法中使用此代码(例如responseError
),而不是直接在拦截器创建代码中使用。