簡體   English   中英

Fullcalendar calendar.getEvents() 不返回剛剛加載的 JSON 事件源

[英]Fullcalendar calendar.getEvents() doesn't return JSON event sources just loaded

我在加載 function 中使用 calendar.getEvents() 時遇到問題。 在 v3 中,代碼如下所示:

$('##calendar').fullCalendar({
...,
events: {
    url: 'myurl',
    ...
},
loading: function(bool) {
$('##loading').toggle(bool);
if (!bool) {
    var eventview = $('##calendar').fullCalendar('getView');
    var loadedEvents = $('##calendar').fullCalendar('clientEvents', function(events){ return (moment(events.start).format('YYYY-MM-DD') >= eventview.start.format('YYYY-MM-DD')  && eventview.end.format('YYYY-MM-DD') > moment(events.start).format('YYYY-MM-DD'))});
    for (i = 0; i < loadedEvents.length; i++) {
... // I inventory the type of events in the current month here
    };
}, ... }

現在使用 v5,它看起來像這樣:

"var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
 ...,
eventSources: [{
    url: 'myurl',
    ...
}],
loading: function(bool) {
    if (!bool) {
        var eventview = calendar.view;
        var loadedEventTypes = new Array();
        var loadedEventTypesHTML = ''; var loadedEventTypesStyles = '';
        var loadedEvents = calendar.getEvents(); // filter removed for debugging

        for (i = 0; i < loadedEvents.length; i++) {
...
        };
    },
 ... }

雖然文檔說在 v3 clientEvents 和 v4/5 getEvents 中都“......返回 FullCalendar 存儲在客戶端 memory 中的事件對象數組。” 這不是我所看到的。

In the v3 code clientEvents does retrieve the events just loaded via the JSON url however in v5 getEvents is returning the the event array before loading the json via the url provided; getEvents 事件集不包括剛剛加載(並顯示)的 JSON。 它確實保存在最后一次 json 調用之前獲取的事件。 即使事件顯示在日歷中,頁面第一次加載時數組也是空的。

有沒有人對如何獲取剛剛加載並在 v5 中顯示的事件有任何建議。

這是 FullCalendar 中的錯誤嗎?

如果你想在加載后對事件做些什么,我認為你應該看看Event Render Hooks和更多的 eventDidMount 而不是加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM