AngularJs 拦截器的循环依赖
AngularJs Circular Dependency for Interceptor
我有以下循环依赖:
$http
/ \
/ \
/ \
/ \
LoginManager------Interceptor
(service) (factory)
这个Circular dependency是在我添加了Interceptor的代码之后才出现的。
Interceptor
会调用LoginManager
中的注销函数,以防某个response
被拦截。
From what I see, only solution is to move interceptor code inside the LoginManager
service as an anonymous factory
有没有更好的办法?
您可以通过使用 injector
服务在运行时获取 LoginManager
的实例来避免循环依赖。
var loginManager = $injector.get('LoginManager');
只需确保在拦截器的方法之一(例如 responseError
)中使用此代码,而不是直接在拦截器创建代码中使用。
我有以下循环依赖:
$http
/ \
/ \
/ \
/ \
LoginManager------Interceptor
(service) (factory)
这个Circular dependency是在我添加了Interceptor的代码之后才出现的。
Interceptor
会调用LoginManager
中的注销函数,以防某个response
被拦截。
From what I see, only solution is to move interceptor code inside the
LoginManager
service as ananonymous factory
有没有更好的办法?
您可以通过使用 injector
服务在运行时获取 LoginManager
的实例来避免循环依赖。
var loginManager = $injector.get('LoginManager');
只需确保在拦截器的方法之一(例如 responseError
)中使用此代码,而不是直接在拦截器创建代码中使用。