I have a class called pop which creates pop-up dialogs on a calendar created by [fullcalendar][1]
export default class pop {
calendar = null;
setCalendar() {
this.calendar = new Calendar(document.getElementById('calendar'), {
eventSourceSuccess: setMinMaxSlotTime,
}
};
setMinMaxSlotTime(eventArray) {
this.calendar.setOption('slotMaxTime', maxTime + ':59:59');
}
}
This doesn't work because when eventSourceSuccess is triggered, this refers to Calendar instead of pop, so this.calendar is undefined in the setMinMaxSlotTime function. Is there a way to tell the setMinMaxSlotTime to use the calendar class variable instead of the Calendar variable (which does not exist)?
NOTE: I was able to make some kind of workaround as follows, first by aliasing that to this and then passing the calendar object to the function, but I feel there's a much better way.
setCalendar() {
const that = this;
this.calendar = new Calendar(document.getElementById('calendar'), {
eventSourceSuccess(eventArray) { that.setMinMaxSlotTime(eventArray, that.calendar); },
}
}
setMinMaxSlotTime(eventArray, calendar) {
calendar.setOption('slotMaxTime', maxTime + ':59:59');
}
[1]: https://fullcalendar.io/