Fullcalendar从本地变量刷新事件

时间:2017-10-12 10:38:34

标签: javascript jquery fullcalendar fullcalendar-3

我在POC项目中使用FullCalendar。我有两个数据网格(使用jTable)。我想在那里添加一些行,单击“发送请求”,然后创建JSON。它被发送到我的后端应用程序,然后它被处理并且返回响应(仍然在JSON中)。我的AJAX-success-handler接受此响应并将其转换为JavaScript对象,以便将其放入日历中。

只要我有这样的结构:

$.post( {
    // options cut for clean output
    success: function(data, textStatus, jqXHR) {
        var eventsToPut = [];

        $.each(data.taskList, function(k, v)  {
            // OBJECT is created when processing response
            eventsToPut.push (OBJECT );
        });

        $('#calendar').fullCalendar({   
             events: eventsToPut,
             // config of calendar cut
        });           
    }                               
});

工作正常。正在呈现响应并且事件显示在日历上。问题是当我更改数据网格中的数据并将请求重新发送到后端时。响应有效,但日历未刷新事件。

因此,我决定将带有EMPTY事件的日历创建提取到jQuery.ready()部分,并尝试在事件发生时刷新/更新日历。到目前为止,我已尝试过我的“成功”处理程序:

 $('#calendar').fullCalendar( 'refetchEvents' );  //It should work with feeds but I've tried anyway
 $('#calendar').fullCalendar({ events: eventsToPut});
 $('#calendar').fullCalendar( 'updateEvents', eventsToPut );

但是日历不会刷新数据。任何人都可以帮我用新数据刷新日历吗?

1 个答案:

答案 0 :(得分:1)

首先,使用removeEvents

从日历中删除所有事件
$('#calendar').fullCalendar('removeEvents', function () { return true; });

然后,您可以使用addEventSource添加新活动

var eventsToPut = []; 

$.each(data.taskList, function(k, v)  {
    // OBJECT is created when processing response
    eventsToPut.push( OBJECT );
});

$('#calendar').fullCalendar('addEventSource', eventsToPut, true);