2016-07-27 58 views
1

我正在使用jquery完整日历并遇到此问题。我在同一视图中有两个日历。当我点击左侧日历中的一个事件时,它应该消失,同时,相同的事件会出现在正确的日历中。事件对象中的源属性导致呈现失败

该问题是由事件对象中的源属性引起的。

eventClick: function(calEvent, jsEvent, view) { 
    var a = { 
       "id": 5, 
       "color": "#2CC870", 
       "title": "work", 
       "name": "Helen", 
       "start": "2016-07-28T14:37:00.000Z", 
       "end": "2016-07-28T16:37:00.000Z", 
       "_id": "5", 
       "className": [], 
       "allDay": false, 
       "_allDay": false, 
       "_start": "2016-07-28T14:37:00.000Z", 
       "_end": "2016-07-28T16:37:00.000Z", 
       // "source": { 
       // "url": "/requests/employer", 
       // "className": [], 
       // "_fetchId": 1, 
       // "_status": "resolved" 
       // }, 
      } 

    $('#js-request-employer-calendar').fullCalendar('removeEvents',a.id); 
    $('#js-request-employee-calendar').fullCalendar('renderEvent',a); 

    console.log(calEvent); 
    console.log(jsEvent); 
    console.log(view); 

    // change the border color just for fun 
    $(this).css('border-color', 'red'); 

} 

如果我将source属性保留在事件对象中,则新事件不会显示出来。如果我把它藏起来,它就会起作用。

感谢您的帮助!

回答

1

这是预期的行为。源属性必须自动填充。

如果你想将事件添加到特定的来源,这将不会是固定的,看到的bug跟踪系统的详细信息:https://github.com/fullcalendar/fullcalendar/issues/2537

其他唯一的解决办法是删除并立即重新添加您的事件源。

+0

所以你说,因为它必须自动填充,具有源属性的事件对象不能只是从一个日历转移到另一个?我最终在转移之前使用delete删除了源属性,并且它工作正常。但很高兴知道为什么这不起作用。谢谢! – whales

+0

等待,您是否尝试过使用clientEvents方法获取客户端事件,或仅使用此函数中提供的calEvent?看到这个演示 - 事件被复制并移动到+3天(尽管在同一日历中)。 http://plnkr.co/edit/lDHhdkGWyhE9yR4BHtzy?p=preview //或另一个事件链接点击:http://plnkr.co/edit/N1Qjg6dkVQPqwiUnP3Bn?p=preview – K48

+0

是的,我认为这个例子只是使用了不同的方式来获取事件对象。但不知道它会在另一个日历中工作。谢谢您的帮助。 – whales