Свойство Object Event «source» возвращает [Object Object] - PullRequest
1 голос
/ 15 марта 2019

Я хотел бы визуализировать события по-разному в зависимости от источника объекта события, но, несмотря на то, что в полной документации календаря указано

source"Источник источника события. Заполняется автоматически.Ссылка на источник события, из которого произошло это событие. "

Я не могу запросить свойство" source "объекта Event.

console.log(event.source); приводит к [object Object]

Я использую несколько Google Календарь eventSources , но ничто в документации не указывает на то, что яне должен быть в состоянии сделать это.

Сначала я планировал отображать события на основе отфильтрованных источников событий (запускаемых пользовательской кнопкой, которая вызывает модальные поля, содержащие флажки), но я потратил много времени на чтение документов, кодаобразцы и многочисленные предложения, прежде чем я, наконец, решил добавить полотенце на эту идею.В конце я удалил все EventSources, используя «removeEventSources», прежде чем добавлять каждый источник один за другим, используя «addEventSource» (в зависимости от того, какие параметры фильтра выбраны).

Кажется, что нет встроенного механизма или простофункциональность для фильтрации событий EventSources (особенно Google Calendars), и я подозреваю, что возможность запрашивать свойство «sources» объекта Event позволит нам использовать другой подход для реализации таких функций и сокращения времени загрузки.

Другой пример использования:

Если вы хотите определить «источник» в eventClick или render, чтобы решить, использовать ли определенные поля, например

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

или

if source == eventSource1 use Modal1 else use Modal2

и т.д.

Итак, мой вопрос:

Кто-нибудь знает, почему я не могу запросить свойство «source» объекта Event, как описано в следующей ссылке?

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

Снимок экрана с полной документацией календаря:

enter image description here

1 Ответ

0 голосов
/ 17 марта 2019

Сообщение, которое вы видите, говорит о том, что event.source - это Объект, поэтому console.log() не покажет вам много. Но console.dir() будет , в том числе:

...
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;

Вот очень упрощенный Codepen , который открывает ваши события по щелчку в различных модальных режимах, в зависимости от источника, что, как я понимаю, является одной из вещей, которые вы пытаетесь сделать.

Дополнительное примечание - для ppl вам будет гораздо легче помочь, если вы попытаетесь создать минимальный, полный и проверяемый пример вашей проблемы. Ваш Codepen включает в себя множество вещей, совершенно не связанных с проблемой, которые мы должны проанализировать, оценить и выбросить, глядя на проблему.

...