添加新事件而不删除“全日历”中的现有事件



我正在使用全日历重写调度组件,我认为我错过了一些东西。我们最初使用的是 1.5.4 版,但后来升级到 1.6.3,日历作为 Backbone.js 视图的一部分包含在内。视图利用主干集合,并在成功提取后更新日历,这就是问题发生的地方。

使用 1.5.4,我们可以通过调用"refetchEvents"来刷新计划,这会将所有事件呈现到计划中。问题是,在 1.6.3 中,似乎首先删除了所有事件,然后添加导致整个计划闪烁片刻。1.5.4 从未这样做过。

我深入研究了完整的日历代码以尝试了解发生了什么,发现 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 或销毁?希望我说得有道理。

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

相关内容

  • 没有找到相关文章

最新更新