Я пытаюсь добавить установщики и получатели для элементов, которые будут помещены в хранилище сеансов.Я пишу эти методы внутри службы.Но я получаю ошибку транспиляции, когда пытаюсь вызвать эти функции в моем компоненте.
Вот служба:
@Injectable()
export class UtilitiesService {
public keySet = [
"CalendarDates",
"LastPublishedSchedule",
"ManageStores",
"SelectedStore"
];
constructor() {
this.addGetSetClearFunctions();
}
addGetFunction(key: string) {
UtilitiesService["get" + key] = function() {
return JSON.parse(sessionStorage.getItem(key));
}
}
addSetFunction(key: string) {
UtilitiesService["set" + key] = function(value) {
sessionStorage.setItem(key, JSON.stringify(value));
}
}
addClearFunction(key: string) {
UtilitiesService["clear" + key] = function() {
sessionStorage.removeItem(key);
}
}
clearAll() {
sessionStorage.clear();
}
addGetSetClearFunctions() {
for(let i = 0; i < this.keySet.length; i++) {
this.addGetFunction(this.keySet[i]);
this.addSetFunction(this.keySet[i]);
this.addClearFunction(this.keySet[i]);
}
}
}
Я пытаюсь вызвать внутри метода set внутри компонента:
this.utilService.setLastPublishedSchedule(JSON.stringify(response));
Примечание: utilService введен правильно, и другие его вспомогательные функции (которые я здесь не поместил, успешно выполняются).
Редактировать # 1:Это ошибка, которую я получаю:
ОШИБКА в src / app / dashboard / components / schedule / schedule.component.ts (344,22): ошибка TS2339: свойство 'setLastPublishedSchedule' не существуетдля типа 'UtilitiesService'.
Редактировать # 2: я пытался вызвать метод с помощью:
this.utilService['setLastPublishedSchedule'](argument here)
Я получил эту ошибку времени выполнения:
ОШИБКА TypeError: _this.utilService.setLastPublishedSchedule не является функцией