0
我正在使用angularcript 1.5與typescript,並且我想創建一個攔截器來在自定義頭中插入令牌,並且還從每個響應中更新它。在嚴格模式下Angular Typescript依賴注入顯式註解錯誤
在運行時,我得到下面的異常:
Uncaught Error: [$injector:strictdi] function($q) is not using explicit annotation and cannot be invoked in strict mode
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);
你有什麼想法,我怎麼能解決這個問題?
在此先感謝。
感謝您的回覆。但是,我需要$ q來進行響應攔截。另外我需要使用打字稿。 – Jhankar
@Jhankar你也可以使用$ q也有 –
如果我使用$ q作爲依賴注入,由於使用嚴格模式,我得到了上述錯誤。 – Jhankar