在不删除FullCalendar中的现有事件的情况下添加新事件

时间:2013-09-11 19:33:36

标签: javascript backbone.js fullcalendar

我正在使用fullcalendar重写一个调度组件,我想我错过了一些东西。我们最初使用的是1.5.4版本,但后来升级到了1.6.3,日历被包含在Backbone.js视图中。该视图利用骨干集合,并在成功获取后更新日历,这就是问题发生的地方。

使用1.5.4,我们可以通过调用'refetchEvents'来刷新计划,这会将所有事件呈现给计划。踢球者是在1.6.3中看起来事件全部被移除,然后被添加导致整个安排闪烁一会儿。 1.5.4从未这样做过。

我挖掘了fullcalendar代码,试着了解发生了什么,并发现1.6.3中的refetchEvents现在看起来像这样:

1.6.3

function refetchEvents() { // can be called as an API method
    clearEvents();
    fetchAndRenderEvents();
}

1.5.X

function refetchEvents() {
    fetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents
}

我想要做的是在必要时更新或删除现有项目,并添加新项目(如果它们从未存在过),而不先删除所有项目(避免使用clearEvents())。

我是否必须手动跟踪现在渲染的内容,在骨干视图中调用updateEvent或destroy?希望我有意义。

1 个答案:

答案 0 :(得分:0)

很难说没有看到fetchEvents()函数,但可能是fetchAndRenderEvents()正在调用collection.reset。假设事件存储在一个集合中,调用collection.set将完全相同,但是您必须设置视图以监听集合上的addremove事件以保持同步视图。