获取视图信息 Fullcalendar V5

Posted

技术标签:

【中文标题】获取视图信息 Fullcalendar V5【英文标题】:Get view Info Fullcalendar V5 【发布时间】:2021-01-26 21:42:42 【问题描述】:

我正在尝试获取有关完整日历视图的一些信息。特别是每次用户更改月份时,我都需要获取“activeStart”和“activeEnd”。我目前正在使用 Fullcalendar V5,并按照此链接上的指南进行操作 https://fullcalendar.io/docs/view-render-hooks

但是当用户更改月份时我无法触发事件( Fullcalendar 正确呈现)。使用 viewClassNames 只有当月有事件时才会触发事件。

【问题讨论】:

“每次用户更改月份时,我都需要获取 'activeStart' 和 'activeEnd'”...为什么呢?如果您使用它来尝试获取每个月的新事件,那么这是执行该任务的错误方法(因为 fullCalendar 已经为此提供了单独的功能)。 我必须向谷歌日历 api 发送请求以加载一个月的事件。谷歌日历 API 允许客户端加载最多 2500 个事件,所以我需要按月加载它们。为此,我需要知道显示完整日历的月份。我在哪里可以获得此类信息? 就像我说的,fullCalendar 已经具有专门用于处理事件加载的功能 - 它支持仅与当前可见月份(或其他日期范围,如果您使用例如,周视图)。事实上,如果您的 google 日历是公开的,甚至还有一个现成的连接器,您可以使用它来自动从那里读取。查看fullcalendar.io/docs/event-source 以了解您的选择并查看具体文章。如果之后还有什么不明白的,可以问我一个更具体的问题 【参考方案1】:

我能够找到生成所需数据的事件。它从事件中调用并返回完整日历中显示的范围日期。

events: function( info, successCallback, failureCallback ) 
        console.log(info.startStr)
        console.log(info.endStr)

返回这个json:

开始:2020 年 9 月 28 日星期一 00:00:00 GMT+0200,结束:2020 年 11 月 9 日星期一 00:00:00 GMT+0100,startStr:“2020-09-28T00:00:00+02:00 ", endStr: "2020-11-09T00:00:00+01:00", timeZone: "本地"

【讨论】:

这仍然不是将事件链接到您的日历的正确方法。您阅读我提供的内容了吗? @ADyson 使用此事件,我可以获得开始日期和结束日期,以请求具有正确日期格式的谷歌日历 API。这解决了我的问题。我使用的日历是私有的,所以在这个过程后面还有一个专用的谷歌身份验证。我阅读了您提供给我的链接,但我设法用上面的代码解决了问题 尽管如此,如果是这种情况,您应该使用fullcalendar.io/docs/events-function 使用回调中提供的日期运行对 API 的调用。这是 fullCalendar 推荐的可靠方式,以便在实际需要时有效地获取事件 @ADyson 我编辑答案以匹配获取此信息的正确方法与您在评论中所说的内容【参考方案2】:

ADyson 是正确的,实现此特定行为的正确方法是在事件回调中加载事件。但是,如果其他人偶然发现这个问题,我想我可以添加如何在没有回调的情况下实际获取此信息。

对于 FullCalendar v5,这可以通过 calendar.view.activeStart 访问,其中 calendar 是您使用 new Fullcalendar.Calendar() 创建的日历对象。

对于旧版本,可通过以下方式访问:('#calendar').fullCalendar('getView').start

【讨论】:

以上是关于获取视图信息 Fullcalendar V5的主要内容,如果未能解决你的问题,请参考以下文章

[fullcalendar]让 listMonth 显示比月份更多的详细信息

[fullcalendar]让listMonth显示比月份更多的细节

FullCalendar日历插件说明文档

FullCalendar活动弹出按钮单击“不工作”

在fullcalendar中添加新事件时如何获取资源ID

使用不带日期的 FullCalendar