Полный календарь RefetchEvents из одного источника события
Я работаю в fullcalandar jquery плагине, но теперь я застрял с обновлением календаря. У меня есть два источника событий, и я сделал пользовательскую кнопку обновления на заголовке календаря. Я хочу делать повторные события только из второго источника событий, когда пользователь нажимает кнопку обновления.
Есть ли способ передать параметр в fullcalendar refetchEvents и сделать повторное получение из одного источника события.
events: function(start, end, timezone,callback) {
$.ajax({
url: //FIRST EVENT SOURCE
dataType: 'json',
success: function(response) {
//attaching the response to the calendar
}
$.ajax({
url: // SECOND EVENT SOURCE
dataType: 'json',
success: function(response) {
//attaching response to calendar
}
});
}
Всякий раз, когда пользователь нажимает на кнопку "Обновить", я делаю $("#calendar").fullcalendar('refetchEvents');
- это будет перезагружать весь календарь (первый + второй источник событий)
То, что я ожидаю сделать, это то, что я хочу сделать повторную проверку только для второго источника события.
1 ответ
РЕДАКТИРОВАТЬ: версия 2.8.0 была выпущена сегодня, и она поддерживает выборку одного источника события. Мой ответ ниже для старых версий.
Верно ли, что вы не хотите обновлять первый источник, но вам все равно нужно сохранять события из первого источника на экране? Тогда просто оставьте их во временном кэше. Затем используйте глобальную переменную, чтобы убедиться, что пользователь нажал "Обновить".
var g_FirstSourceEventsCache = null;
var g_IsRefreshClicked = false;
events: function(start, end, timezone,callback) {
if (g_IsRefreshClicked) {
//do not reload from server, load from cache
callback(g_FirstSourceEventsCache);
g_IsRefreshClicked = false;
} else {
$.ajax({
url: //FIRST EVENT SOURCE
dataType: 'json',
success: function(response) {
//attaching the response to the calendar
//save to cache
g_FirstSourceEventsCache = myFirstSourceEventsThatIPassedToCallback;
}
}
//second source is always refreshed
$.ajax({
url: // SECOND EVENT SOURCE
dataType: 'json',
success: function(response) {
//attaching response to calendar
}
});
}