Источники статических событий полного календаря

Я использую fullcalendar eventSources для извлечения данных событий json с сервера. У меня есть переменная sheet_id, которая изменяется, и функция selected_sheet_id() возвращает соответствующий выбранный лист. Проблема в том, что когда я вызываю $("#calendar").fullCalendar('refetchEvents') для возврата событий, sheet_id (таким образом, все события) всегда одинаковы. То есть fullcalendar не обновляется текущим sheet_id перед получением событий. Как заставить eventSources «перекомпилировать», чтобы он извлек правильный sheet_id из функции перед выполнением вызова ajax.

eventSources: [{
    url: '/event/get_events',
    type: 'GET',
    data: {
        sheet_id: selected_sheet_id()
    },
    error: function() {
        alert('there was an error while fetching events!');
    }     
}]

person user2434674    schedule 19.07.2013    source источник


Ответы (1)


Сначала попробуйте это с async:false для вызова синхронизации:

eventSources: [
          {
           url: '/event/get_events',
           type: 'GET',
           async:false,
           data:{
                  sheet_id: selected_sheet_id()
                },
           error: function() {
              alert('there was an error while fetching events!');
              },      
          },
             ]

В противном случае был создан один метод, который извлекает данные о событии с использованием Ajax call For ex :

  var ajaxreturnstring="";
       $.ajax({  
            type: "POST",  
            url: "/EMR-PHR/getPatientScheduleajax.html", 
           dataType:"html",
            data: "",
           async:false,
            success: function(data){
                ajaxreturnstring=$.trim(data);
                 var obj = eval("("+txt+")");
                     return obj;
            },  
            error: function(e){  
              alert('Error: ' + e);  
            }  
          }); 


   }
person HybrisHelp    schedule 19.07.2013
comment
Я пробовал async:false, и это не сработало. Я мог бы написать отдельный запрос ajax, но я хотел использовать методы вызова fullcalendar, поскольку у них есть правильные триггеры, когда делать вызов для получения событий, когда день, месяц, год переключаются. Методы вызова полного обновления календаря также предоставляют правильный диапазон дат для поиска. - person user2434674; 19.07.2013
comment
вы можете сначала найти функцию с вызовом каждый раз, когда переключается день, месяц, год. И чем вызов Ajax из этой функции. Поэтому каждый раз, когда вы получаете обновленный объект JSON, я делаю то же самое в своем плагине календаря недели jquery. - person HybrisHelp; 19.07.2013
comment
Сначала я пробовал это, связывая разные кнопки с вызовом обновления AJAX, но проблема заключалась в том, что вызов обновления AJAX срабатывал до того, как полный календарь мог обновить переменную, показывающую, какой месяц просматривается. Таким образом, мне пришлось отправить все данные о событиях за месяц до и после отчетного месяца, просматриваемого из полного календаря. (Таким образом, у меня будут все данные для дат, которые можно просмотреть). На мой взгляд, это было расточительно, поэтому я рассмотрел использование методов fullcalendars, которые извлекаются из указанного URL-адреса и фактически дают текущие обновленные просматриваемые даты. - person user2434674; 19.07.2013