Angular Typescript依赖注入严格模式下的显式注释错误

时间:2016-09-30 13:52:21

标签: angularjs typescript dependency-injection annotations

我正在使用angular 1.5 with typescript,我想创建一个拦截器,在自定义标头中插入标记,并从每个响应中更新它。

运行时,我得到以下异常:

  

未捕获错误:[$ injector:strictdi]函数($ q)未使用   显式注释,不能在严格模式下调用

class AuthInterceptor implements ng.IHttpInterceptor {

  $q:ng.IQService;

  static $inject = ['$q'];
  constructor($q:ng.IQService) {
    this.$q = $q;
  }

  static factory($q:ng.IQService):AuthInterceptor {
    return new AuthInterceptor($q);
  }


  request = (config:ng.IRequestConfig):ng.IRequestConfig => {
   // config.headers = config.headers || {};
   console.info('Request config md', config);
   // config.headers['token'] = 'test token';

   return config;
 };

  response = <T>(response: ng.IHttpPromiseCallbackArg<T>):ng.IPromise<T> => {
    console.info('Response:', response);

// modify response

  return this.$q.when(response);
};

}

let httpConfig = ($httpProvider:ng.IHttpProvider) => {
   $httpProvider.interceptors.push(AuthInterceptor.factory);
};

angular.module('app').config(httpConfig);

你有什么想法,我怎么能解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

请试试这个。这是每个请求最简单的拦截器

app.factory('myInterceptor', function() {  
        var requestInterceptor = {
            request: function(config) {
                return config;
            }
        };
        return requestInterceptor;
    });

    app.config(['$httpProvider', function($httpProvider) {  
        $httpProvider.interceptors.push('myInterceptor');
    }]);