我有以下循环依赖关系:
$http
/
/
/
/
LoginManager------Interceptor
(service) (factory)
这种循环依赖关系是在我添加拦截器代码后才出现的。
Interceptor
将在LoginManager
中调用注销函数,以防拦截某个response
。
据我所知,唯一的解决方案是将拦截器代码作为
anonymous factory
在LoginManager
服务内移动
有没有更好的方法?
可以通过使用 injector
服务在运行时获取 LoginManager
实例来避免循环依赖关系。
var loginManager = $injector.get('LoginManager');
只需确保在拦截器的方法之一(例如responseError
)中使用此代码,而不是直接在拦截器创建代码中。