2
У меня есть корень AppModule
, в котором я описываю зависимости, и у меня есть @Injectable
JwtLocalStorage
. Интересно, как я могу пройти JwtLocalStorage.prototype.getToken()
как tokenGetter
в provideAuth()
. Является ли это возможным? Что я должен сделать для этого?Использование экземплярированной зависимости в NgModule
app.module.ts
@NgModule({
// ...
providers: [
// ...
provideAuth({
tokenGetter:() => JSON.parse(localStorage.getItem(TASK_DI_CONFIG.jwtName)),
}),
{ provide: APP_CONFIG, useValue: TASK_DI_CONFIG },
{ provide: JwtStorage, useClass: JwtLocalStorage }
],
bootstrap: [
AppComponent
]
})
export class AppModule {
}
JWT-Локально-storage.ts
@Injectable()
export class JwtLocalStorage implements JwtStorage {
constructor(
@Inject(APP_CONFIG) private config: AppConfig
) {
}
getToken() {
return JSON.parse(localStorage.getItem(this.config.jwtName));
}
// ...
}
P.S. Я использую Angular 2.0.0-rc.5
Я не понимаю «как я могу передать JwtLocalStorage.prototype.getToken() как tokenGetter в provideAuth()». Что именно вам нужно передать где? –
@ GünterZöchbauer Я хочу передать 'getToken()' метод класса 'JwtLocalStorage' для' обеспеченияAuth() 'вспомогательной функции как свойство tokenGetter'. На данный момент я дублировал реализацию 'getToken()' в 'AppModule'. – user1636505
Думаю, я понимаю сейчас, но понятия не имею. Я предполагаю, что вы можете использовать собственный метод 'compAuth()' или скопировать содержимое метода непосредственно поставщикам модулей, но это выглядит как ухудшение –