AngularJS 1.3.13 - 是否可以向特定$资源添加多个拦截器?

时间:2015-07-06 06:37:18

标签: angularjs angularjs-routing

我有一堆不同的拦截器,我只想在特定的$ resource端点上使用它们。我读到了$ resource的拦截器属性,并且有这个工作,但在一些情况下,我希望有两个拦截器用于一个端点响应,它就像普通的全局拦截器一样链。这可能吗?

在User $资源的操作中,我希望在登录端点添加类似我的内容:

var actions = {

    login: {
        method: 'POST',
        url: '/api/auth/login',
        interceptor: [AuthLoginInterceptor,AuthUserInterceptor]
    },
    logout: {
        method: 'GET',
        url: '/api/auth/logout',
        interceptor: AuthLogoutInterceptor
    },
    update: {
        method: 'PUT',
        interceptor: AuthUserInterceptor
    },...

我知道我可以只将一个代码包含在另一个代码中,所以最糟糕的情况是我只是重构一个解决方案,但如果可能的话,我宁愿保持原样。

1 个答案:

答案 0 :(得分:3)

这样的事情怎么样?:

{
  method: 'POST',
  url: '/api/auth/login',
  interceptor: {
    response: function (config) {
      return AuthLoginInterceptor.response(AuthUserInterceptor.response(config));
    }
  }
}

它似乎正在我正在使用的最小测试项目中工作。

根据我上面的评论回答。希望它可以用于此问题的未来访问者。