AngularJs拦截器的循环依赖

时间:2016-03-20 20:44:01

标签: angularjs circular-dependency angular-http-interceptors

我有以下循环依赖:

            $http
            /   \
           /     \
          /       \
         /         \
LoginManager------Interceptor
 (service)         (factory)

这个循环依赖只在我添加了Interceptor的代码后才出现。

Interceptor会在LoginManager中调用退出功能,以防截获某个response

  

从我看到的,唯一的解决方案是将LoginManager服务中的拦截器代码移动为anonymous factory

还有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

通过使用injector服务在运行时获取LoginManager的实例,可以避免循环依赖。

var loginManager = $injector.get('LoginManager');

请确保在拦截器的某个方法中使用此代码(例如responseError),而不是直接在拦截器创建代码中使用。