0

我对 fullcalendar v5.3.2 及其选项有疑问。

我有以下设置。

  var calendarEl = document.getElementById('calendar');                                                                                                                                                           
  var calendar = new FullCalendar.Calendar(calendarEl, {                                                                                                                                                          
    initialView: 'dayGridMonth',                                                                                                                                                                                  
    locale: 'ja',                                                                                                                                                                                                 
    themeSystem: 'bootstrap4',                                                                                                                                                                                    
    height: 700,                                                                                                                                                                                                  
    events: '/api/user/calendar/'+<?= $user->id?>+'<?= date("/Y/m")?>',                                                                                                                                           
});

单击下一个、上一个和今天按钮时,我正在尝试更改事件 url 并刷新日历。这是因为我想每月获取事件。

有可能做到吗?

此致,

4

1 回答 1

0

我可以设置事件网址,如下所示。

calendar.setOption('events', 'MY_NEW_URL');  

完整的源代码如下。

  var btn = document.getElementsByClassName('fc-button-primary');                                                                                                                                                 
  for(let i = 0; i < btn.length; i++) {                                                                                                                                                                           
    btn[i].addEventListener("click", function() {                                                                                                                                                                 
      var selectedYear = document.getElementsByClassName('fc-toolbar-title')[0].textContent.match(/^[0-9]*/)[0];                                                                                                  
      if(currentYear != selectedYear)                                                                                                                                                                             
      {                                                                                                                                                                                                           
        currentYear = selectedYear;                                                                                                                                                                               
        calendar.setOption('events', '/api/user/calendar/'+<?= $user->id?>+'/'+currentYear+'/'+document.getElementsByClassName('fc-toolbar-title')[0].textContent.match(/^[0-9]*/)[1] );                                }                                                                                                                                                                                                           
    })                                                                                                                                                                                                            
  }
于 2020-09-28T03:31:25.837 回答