2011-11-03 93 views
2

FullCalendar除了我遇到的1個問題外,還有很大的工作量。 在monthview模式下加載日曆的monthview div似乎顯示重複的假日加載。當我添加一個事件,然後調用我的日曆綁定函數(基本運行下面的代碼)時,會發生這種情況。FullCalendar即使在刪除所有事件時也會插入重複事件

有沒有其他人有類似的問題?它看起來像'removeEvents'功能工作正常對數據源來自內部數據庫,但似乎離開了谷歌日期。當調用addEventSource時,它會再次添加相同的事件。

var googleUkHolidaysFeed = { 
    url: 'http://www.google.com/calendar/feeds/uk__en%40holiday.calendar.google.com/public/basic', 
    cache: true, 
    color: "green"  
}; 

$.getJSON(url, {}, function (data) { 

     $('#dayview').fullCalendar('removeEvents'); 
     $('#dayview').fullCalendar('addEventSource', data);   

     if ($("#monthview")[0]) { 
      $('#monthview').fullCalendar('removeEvents'); 
      $('#monthview').fullCalendar('addEventSource', data); 
      $('#monthview').fullCalendar('addEventSource', googleUkHolidaysFeed); 
     } 
    }); 

回答

5

我自己解決了這個問題。 'removeEvents'必須被調用,然後是'removeEventSource',如下所示:

('data'是由應用程序提供的事件的json數組,'googleCalendarUkHolidayFeed'是來自google的url提要)。

var googleCalendarUkHolidayFeed = { 
    url: "http://www.google.com/calendar/feeds/bla..."  
}  

$('#dayview').fullCalendar('removeEvents');  
$('#dayview').fullCalendar('addEventSource', data); 

if ($("#monthview")[0]) { 
    // remove events and re-add event source to reflect search/non-search 
    $('#monthview').fullCalendar('removeEvents'); 

    $('#monthview').fullCalendar('removeEventSource', googleCalendarUkHolidayFeed); 
    $('#monthview').fullCalendar('removeEventSource', data);   

    $('#monthview').fullCalendar('addEventSource', googleCalendarUkHolidayFeed); 
    $('#monthview').fullCalendar('addEventSource', data);   
}