事件对象属性"source"returns[对象对象]

Event Object property "source" returns [object Object]

我想根据事件对象的来源以不同方式呈现事件,但即使 fullcalendar 文档指出

source "Event Source Object. Automatically populated. A reference to the event source that this event came from."

我无法查询事件对象的 "source" 属性。

console.log(event.source); 结果为 [object Object]

我正在使用多个 Google 日历 eventSources,但文档中似乎没有任何内容表明我不应该这样做能够做到这一点。

我最初计划根据过滤后的事件源(由调用包含复选框的模式的自定义按钮触发)呈现事件,但在我最终决定抛出之前,我花了很长时间阅读文档、代码示例和大量建议认输这个想法。最后,我使用 'removeEventSources' 删除了所有 eventSources,然后使用 'addEventSource' 一一添加每个源(取决于选择的过滤器选项)。

似乎没有内置机制或直接功能来过滤事件源(尤其是 Google 日历),我怀疑能够查询 "sources" 属性事件对象将允许我们使用不同的方法来完成此类功能并缩短加载时间。

其他用例示例:

如果想在eventClick或render时判断"source"来决定是否使用某些字段e.g.

if event source == Holiday Cal do not display event.start & event.end

if source == eventSource1 use Modal1 else use Modal2

等等

所以我的问题是:

有谁知道为什么我不能查询事件对象的 "source" 属性 如下 link?

https://fullcalendar.io/docs/event-object

Fullcalendar 文档屏幕截图:

您看到的消息告诉您 event.source 是一个对象,因此 console.log() 不会向您显示太多。但是console.dir() will,包括:

...
calendar: t {loadingLevel: 0, ignoreUpdateViewSize: 0, freezeContentHeightDepth: 0, el: w.fn.init(1), viewsByType: {…}, …}
className: ["TestCase"]
googleCalendarId: "e0kujgeepc0ev00eojborllms8@group.calendar.google.com"
... etc

您可以使用这些属性中的任何一个来测试您正在查看的来源,例如(不确定为什么 className 是一个数组,但这与此问题无关):

$target = (event.source.className[0] === 'HolidaysUK') ? $modal1 : $modal2;

Here's a much simplified Codepen 这会根据来源在不同的模式中打开您的点击事件,据我所知,这是您正在尝试做的事情之一。

旁注 - 如果您尝试创建一个 minimal, complete, and verifiable example 您的问题,您将使人们更容易提供帮助。您的 Codepen 包含大量与问题完全无关的内容,我们在查看问题时必须仔细研究、评估和丢弃这些内容。