我正在使用 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 或销毁?希望我说得通。