Ich benutze angular 1.5 mit Typoskript und ich möchte einen Interzeptor erstellen, um Token in den benutzerdefinierten Header einzufügen und auch von jeder Antwort zu aktualisieren.Angular Typescript Abhängigkeitsinjektion explizite Annotation Fehler im strikten Modus
Während des Laufens, erhalte ich die folgende Ausnahme:
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);
Haben Sie eine Idee haben, wie kann ich dieses Problem beheben?
Vielen Dank im Voraus.
Danke für die Antwort. Allerdings brauche ich $ q für die Überwachung der Antwort. Auch ich muss Typoskript verwenden. – Jhankar
@Jhankar können Sie $ q auch dort verwenden –
Wenn ich $ q als Abhängigkeitsinjektion verwenden, bekomme ich den erwähnten Fehler wegen der Verwendung von strikten Modus. – Jhankar