在日历上删除外部事件后,完整日历是否必须重新呈现每个事件?

时间:2014-12-01 18:43:05

标签: fullcalendar

我正在构建一个允许用户将外部事件拖到日历上的日历。当他们这样做时,ajax调用将触发并将事件保存到数据库。为了理解什么事件然后调整大小或确实重新安排,我使用刚刚在数据库中创建的事件的id更新事件。这意味着如果我需要进一步更新事件。即有人移动事件或确实改变持续时间等我可以用另一个ajax调用触发id并更新事件。

问题在于,每次在日历上删除某个事件时,每个事件似乎都会重新渲染,从而消除了添加到每个事件的ID的ID。有没有办法阻止完全重新渲染?或者保留元素上的id的方法?你可以在下面看到我将id occurrence - 387添加到html但是当我添加另一个事件时,这会被删除。任何帮助,将不胜感激! : - )

<a class="fc-day-grid-event fc-event fc-start fc-end  fc-draggable fc-resizable _fc4" id="occurance-387"><div class="fc-content"> <span class="fc-title">A Very Short Introduction to… Anxiety</span></div><div class="fc-resizer"></div></a>

1 个答案:

答案 0 :(得分:0)

不要将您的ID添加到html中。您应该将您的id作为属性存储在 eventObject 中。然后,当您需要更新数据库时,可以从 eventObject 中获取id。

eventResize: function(event){
    $.ajax('http://myendpoint.com/?saveNewEndDate", {id:event.id,newEndTime: event.end.format()},function(data){
        if(data) {alert('Success!');}
    });
}

传递给函数的其他变量可能很有用:delta,revertFunc。查看documentation了解详情。

在我的实现中,只要使用 drop 回调函数将新事件保存到日历中,我的ajax响应就会返回日历 eventObject 的json表示,然后我调用renderEvent方法将其添加到日历中。我的json事件对象包含一个id属性。

$(#calendarContainer').fullCalendar('renderEvent', results.calendarEvent);