Доступ к сервису из экспортированной функции в объявлении модуля в Angular 2+
У меня есть следующее объявление модуля:
import { ConnectionService } from './services/connection.service';
import { NgModule } from '@angular/core';
import { Http, RequestOptions } from '@angular/http';
import { AuthHttp, AuthConfig } from 'angular2-jwt';
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp(new AuthConfig({
tokenName: 'token',
tokenGetter: (() => sessionStorage.getItem('token'))
}), http, options);
}
@NgModule({
providers: [
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions]
}
],
})
export class AuthModule { }
и обслуживание:
import { Injectable } from '@angular/core';
@Injectable()
export class ConnectionService {
id;
getToken() {
return JSON.parse(sessionStorage.getItem('token'))[this.id];
}
}
Мне нужно использовать метод Services "getToken" в tokenGetter для функции экспорта модулей, но я не могу заставить его работать, и Google не ответил на мой вопрос (или я не смог выглядеть правильно).
1 ответ
Привет можешь попробовать вот так
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp(new AuthConfig({
tokenName: 'token',
tokenGetter: (() => new ConnectionService().getToken())
}), http, options);
}