Полный календарь 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'); — это обновит весь календарь (первый + второй источник событий)

Что я ожидаю сделать, так это то, что я хочу выполнить повторную выборку только для второго источника событий.


person Krupa    schedule 18.06.2016    source источник
comment
Вы должны попробовать с этим вариантом. 1. Уничтожить календарь. 2. Воссоздать календарь. Или вы можете пойти с 1. Обновите календарь.   -  person Divyesh Patoriya    schedule 18.06.2016
comment
например $(#cal).fullCalendar('обновить');   -  person Divyesh Patoriya    schedule 18.06.2016
comment
Спасибо за ваш ответ ... если вы обновите, это будет обновляться из двух источников событий. Поправьте меня, если я ошибаюсь. Я хочу сделать обновление для одного источника событий.   -  person Krupa    schedule 18.06.2016
comment
Какой код вы пробовали до сих пор?   -  person Divyesh Patoriya    schedule 18.06.2016
comment
Если у вас есть только два события в календаре, есть ли проблема снова получить оба события и отобразить их там?   -  person Divyesh Patoriya    schedule 18.06.2016
comment
Нет, я не сталкивался с проблемами при обновлении всего календаря, но столкнулся с проблемой производительности.   -  person Krupa    schedule 18.06.2016
comment
Теперь это возможно с сегодняшней версии 2.8.0. Используйте refetchEventSources с идентификатором источника.   -  person    schedule 23.06.2016


Ответы (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
                 }
             });
       }
person Community    schedule 21.06.2016