AngularJS - 在这种情况下使用$ injector有什么好处?

时间:2015-02-26 15:46:46

标签: javascript angularjs dependency-injection interceptor

当我看到这个实现时,我正在阅读以下文章:Techniques for authentication in AngularJS applications

.config(function ($httpProvider) {
  $httpProvider.interceptors.push([
    '$injector',
    function ($injector) {
      return $injector.get('AuthInterceptor');
    }
  ]);
})
.factory('AuthInterceptor', function ($rootScope, $q,
                                      AUTH_EVENTS) {
  return {
    responseError: function (response) { 
      $rootScope.$broadcast({
        401: AUTH_EVENTS.notAuthenticated,
        403: AUTH_EVENTS.notAuthorized,
        419: AUTH_EVENTS.sessionTimeout,
        440: AUTH_EVENTS.sessionTimeout
      }[response.status], response);
      return $q.reject(response);
    }
  };
})

有人可以解释一下,为什么作者在这里使用注射器而不是:

.config(function ($httpProvider) {
  $httpProvider.interceptors.push({
    responseError: function (response) { 
      $rootScope.$broadcast({
        401: AUTH_EVENTS.notAuthenticated,
        403: AUTH_EVENTS.notAuthorized,
        419: AUTH_EVENTS.sessionTimeout,
        440: AUTH_EVENTS.sessionTimeout
      }[response.status], response);
      return $q.reject(response);
    });
})

如果有人能向我解释他为什么写这个,我也很感激:

'$injector',

在功能之前。

非常感谢你们!

0 个答案:

没有答案