2013-07-19 40 views
0

我正在使用fullcalendar eventSources從服務器中提取json事件數據。我有一個變量sheet_id該更改和selected_sheet_id()函數將返回選定相應的工作表。問題是,當我撥打$("#calendar").fullCalendar('refetchEvents')返回事件時,sheet_id(因此所有事件)始終是相同的。在獲取事件之前,fullcalendar不會刷新當前的sheet_id。如何觸發eventSources以「重新編譯」,以便在執行ajax調用之前從函數中提取正確的sheet_id完整日曆static eventSources

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

回答

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對於前獲取事件數據:

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); 
      } 
      }); 


    } 
+0

我試過異步:假的,那不起作用。我可以編寫一個單獨的ajax請求,但我想使用fullcalendar的調用方法,因爲他們具有正確的觸發器,以便在日,月,年切換時撥打電話以獲取事件。完整的日曆更新調用方法也提供了正確的日期幀以供搜索。 – user2434674

+0

您可以在每天,每月,每年切換時,首先找到有呼叫的功能。和Ajax從該函數調用相比。所以每次更新JSON對象時,我都在我的jquery week calender插件中做了同樣的事情。 – HybrisFreelance

+0

我原來試過,將不同的按鈕鏈接到更新的AJAX調用,但問題是AJAX更新調用會在完整的日曆可能更新顯示哪個月正在查看的變量之前觸發。因此,我必須在整個日曆中查看報告的月份之前和之後的一個月發送所有事件數據。 (這樣我就可以看到可以查看的日期的所有數據)這在我看來是浪費的,這就是爲什麼我使用fullcalendars方法從指定的url中拉出並實際提供正在查看的當前更新日期的原因。 – user2434674