RefetchEvents来自单个事件源的fullcalendar

时间:2016-06-18 05:13:58

标签: jquery fullcalendar fullcalendar-scheduler

我在fullcalandar jquery插件中工作,但现在我坚持使用重新获取日历。 我有两个事件源,我在日历头上制作了自定义刷新按钮。我希望只要用户点击刷新按钮,就只能从第二个事件源重新获取事件。

有没有办法在fullcalendar refetchEvents中传递paramater并从单个事件源重新获取。

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 个答案:

答案 0 :(得分:1)

编辑:版本2.8.0今天发布,它支持获取单个事件源。我的答案是旧版本。

我是否正确您不想刷新第一个来源,但您仍然需要保留屏幕上第一个来源的事件?然后将它们留在临时缓存中。然后,使用global var检查用户是否单击了Refresh。

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