我希望根据事件对象的来源以不同的方式呈现事件,尽管完整的日历文档指出
source “事件源对象。自动填充。对 该事件来自的事件源。”
我无法查询事件对象的“源”属性。
console.log(event.source);
产生[object Object]
我正在使用多个 Google 日历 eventSources ,但是文档中似乎没有任何内容表明我不应该这样做。
我最初计划基于过滤后的eventSources(由调用包含复选框的模式的自定义按钮触发)来呈现事件,但是在最终决定投入使用之前,我花了很多时间阅读文档,代码示例和大量建议。毛巾上这个想法。最后,我先使用“ removeEventSources”删除了所有eventSources,然后使用“ addEventSource”(取决于选择了哪些过滤器选项)来逐一添加每个源。
似乎没有内置的机制或简单的功能来过滤eventSources(尤其是Google Calendars),我怀疑查询Event Object的“ sources”属性的能力将使我们能够采用不同的方法来实现这种功能并缩短加载时间。
其他用例示例:
如果要在eventClick或渲染上确定“来源”,以决定是否使用某些字段,例如
if event source == Holiday Cal do not display event.start & event.end
或
if source == eventSource1 use Modal1 else use Modal2
等
所以我的问题是:
有人知道为什么我不能查询以下链接中记录的事件对象的“源”属性吗?
https://fullcalendar.io/docs/event-object
全日历文档屏幕截图:
答案 0 :(得分:0)
您所看到的消息告诉您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,则ppl可以更轻松地提供帮助。您的Codepen包含了与问题完全无关的大量内容,在查看问题时,我们必须进行仔细研究,评估和丢弃。