Instance
Overview
In object-oriented programming (OOP), an instance is a specific realization of a class. Similarly, in the scope of the Mobiscroll library, a component instance is a realization of the component class.
The instantiation (the creation of objects from a class) in case of the Mobiscroll components is done when the intialization function is called.
Getting the instance
Inside events
A reference to the component instance is available in every Mobiscroll event as the second argument of the event handler.
$('#my-div').mobiscroll().eventcalendar({
onEventCreate: (args, inst) => {
console.log('The Eventcalendar instance:', inst);
},
});
The getInst method
A reference to the component instance is returned by the getInst function:
$('#my-div').mobiscroll().eventcalendar({ theme: 'ios' });
const inst = $('#my-div').mobiscroll('getInst');
console.log('The Eventcalendar instance:', inst);
The getInst function also receives a parameter. When true is passed to the parameter the form control instance will be returned. This is usefull when two components are initialized on the same element, for example: a mobiscroll input and a datepicker.
$('#my-inp').mobiscroll().input();
$('#my-inp').mobiscroll().datepicker();
const instDatepicker = $('#my-inp').mobiscroll('getInst'); // the main component instance
const instInput = $('#my-inp').mobiscroll('getInst', true); // the form component instance
Calling methods
All the component methods are documented on each components API section. The methods can be called on the component instances as described in the previous section.
Example: Getting invalid dates for a date range
One such a case when you might need to call an instance method would be to get the invalid data for a time period from the eventcalendar. Since the invalid data you pass to the Eventcalendar can contain recurring rules, you need a way to calculate the actual occurences. Luckily the Eventcalendar has a method that will return the actual occurences for a time period.
const invalidsArray = [
{
start: '2023-10-18',
allDay: true,
recurring: {
repeat: 'weekly',
weekDays: 'MO,FR,SA',
interval: 1
}
}
];
To get the actual invalid days for the month of November, you can call the getInvalids method of the Eventcalendar instance.
// initialize the eventcalendar with the invalid rule
$('#my-div').mobiscroll().eventcalendar({
invalid: invalidsArray
});
// get the instance
const inst = $('#my-div').mobiscroll('getInst');
// query the invalid occurences
const occurences = inst.getInvalids('2023-11-01', '2023-12-01');
The result in this case will be an array of objects, each of them being an occurence of an invalid day in November.