我正在尝试为许多不同的$resource
上的事件构建日志系统。我有一个工厂,我已经建立了我想要的,但是,我不想用不必要的代码污染我的控制器,我想让记录器工厂触发每次触发资源(能够自定义发送到工厂的数据)。
我似乎无法通过$resource
上的各种方法找到一种方法来做到这一点。
认为拦截器是可行的方法。下面是我们用来向所有请求添加令牌的示例:
.factory 'TokenInterceptor', ($q, $window, AuthenticationService) ->
return {
request: (config) ->
config.headers = config.headers || {}
if $window.sessionStorage.username
config.headers.Authorization = $window.sessionStorage.token
config
response: (response) ->
response || $q.when(response)
}
.config ($httpProvider) ->
$httpProvider.interceptors.push('TokenInterceptor')
如你所见,我们将工厂添加到拦截器中,我认为这基本上是你想要做的。