AngularJs在$ resource事件上触发工厂

时间:2014-07-04 19:22:05

标签: javascript angularjs mean-stack

我正在尝试为各种$resource的事件构建日志记录系统。我有一个我所建造的工厂,它完全符合我的要求,但是,我不想用不必要的代码污染我的控制器,我想让记录器工厂触发每一个触发资源的时间(能够自定义发送到工厂的数据)。

我似乎无法通过$resource上的各种方法找到解决方法。

解决此类问题的任何想法或建议?我是不是太复杂了?

1 个答案:

答案 0 :(得分:0)

认为拦截器将是最佳选择。以下是我们用于向所有正在发出的请求添加令牌的示例:

.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')

正如您所看到的,我们将工厂添加到拦截器中,这基本上就是您想要做的。