适用于Google日历活动的活动

时间:2018-03-28 17:09:44

标签: fullcalendar

我正在尝试将eventRender功能用于多个Google日历。我有日历工作,但是当我从示例中添加eventRender代码时,我会丢失日历。我在这里制作了一个代码:https://codepen.io/christidtp/pen/MVrMdB

$(function() {

  $('#calendar').fullCalendar({

    themeSystem: 'bootstrap4',
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay,listMonth'
    },

weekNumbers: false,
    eventLimit: true, // allow "more" link when too many events
    googleCalendarApiKey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    eventSources: [
      {
        googleCalendarId: 'XXXX@group.calendar.google.com'
      },
      {
        googleCalendarId: 'XXXX@group.calendar.google.com',
        className: 'nice-event'
      }
    ],

eventRender: function(eventObj, $el) {
  $el.popover({
    title: eventObj.title,
    content: eventObj.description,
    trigger: 'hover',
    placement: 'top',
    container: 'body'
  });
},



 });

});

2 个答案:

答案 0 :(得分:1)

你的函数eventRender中不应该有$前缀参数el ......

答案 1 :(得分:0)

我遇到了同样的问题。从事件对象的文档(https://fullcalendar.io/docs/event-object):

  

非标准字段

     

除上述字段外,您还可以在每个事件对象中包含您自己的非标准字段。 FullCalendar不会修改或删除这些字段。例如,开发人员通常包含一个描述字段,用于回调,例如eventRender。

如果Google日历事件没有描述,那么该字段是未定义的,并且会导致无声错误,很可能是因为它在回调中。

这是我的解决方案。我对javascript一无所知,所以如果在这种情况下有更安全的方式来安全获取房产,我会很好奇。

eventRender: function(eventObj, el) {
  if (eventObj.description === undefined) {
    eventObj.description = "";
  } 
  $(el).popover({
    trigger: 'hover',
    title: eventObj.title,
    content: eventObj.description,
    placement: 'top',
    container: 'body'
  });
}