Here is my Angular TypeScript Interceptor:
export module httpMock_interceptor {
export class Interceptor {
static $inject: string[] = ['$q'];
constructor(public $q: ng.IQService) {}
public request(config: any) {
console.log(this);
}
}
}
Here is my module where I am registering as service.
import {httpMock_interceptor as interceptor} from './httpMock.interceptor';
var httpMock: ng.IModule = angular.module("httpMockTs", []);
httpMock.service("httpMockInterceptor",interceptor.Interceptor);
httpMock.config.$inject = ['$httpProvider'];
httpMock.config(['$httpProvider', function ($httpProvider: ng.IHttpProvider) {
$httpProvider.interceptors.unshift('httpMockInterceptor');
}]);
When the app starts running, the interceptor constructor initializing the $q service, but when it goes to the method request where I am use this keyword, browser says this is undefined. Can anyone tell me where I am doing the mistake.
And Here is my transpiled code for interceptor
export var httpMock_interceptor;
(function (httpMock_interceptor) {
class Interceptor {
constructor(_q) {
this._q = _q;
}
request(config) {
console.log(this);
}
}
Interceptor.$inject = ['$q'];
httpMock_interceptor.Interceptor = Interceptor;
})(httpMock_interceptor || (httpMock_interceptor = {}));
Module
import { httpMock_interceptor as interceptor } from './httpMock.interceptor';
var httpMock = angular.module("httpMockTs", []);
httpMock.service("httpMockInterceptor", interceptor.Interceptor);
httpMock.config.$inject = ['$httpProvider'];
httpMock.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.unshift('httpMockInterceptor');
}]);
export { httpMock };