首页 > 解决方案 > 如何在 FullCalendar JS 中发送当前月份的事件请求?

问题描述

通过错误方法,我遇到了 calendar.getDate().getMonth() 在这个函数之外工作,但是在里面呢?这个。不工作它说这个。不是函数。

   <script>
    var todayDate = moment().startOf('day');
    var YM = todayDate.format('YYYY-MM');
    var YESTERDAY = todayDate.clone().subtract(1, 'day').format('YYYY-MM-DD');
    var TODAY = todayDate.format('YYYY-MM-DD');
    var TOMORROW = todayDate.clone().add(1, 'day').format('YYYY-MM-DD');
    var month;

    document.addEventListener('DOMContentLoaded', function()
    {
        var calendarEl = document.getElementById('calendar');

        var calendar = new FullCalendar.Calendar(calendarEl,
            {
                plugins: ['dayGrid', 'list', 'timeGrid', 'interaction', 'bootstrap'],
                themeSystem: 'bootstrap',
                timeZone: 'UTC',
                //dateAlignment: "month", //week, month
                buttonText:
                    {
                        today: 'today',
                        month: 'month',
                        week: 'week',
                        day: 'day',
                        list: 'list'
                    },
                eventTimeFormat:
                    {
                        hour: 'numeric',
                        minute: '2-digit',
                        meridiem: 'short',
                        hour12: false,
                    },
                navLinks: true,
                firstDay: 1,
                header:
                    {
                        left: 'prev,next today addEventButton',
                        center: 'title',
                        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
                    },
                footer:
                    {
                        left: '',
                        center: '',
                        right: ''
                    },
                customButtons:
                    {
                        addEventButton:
                            {
                                text: '+',
                                click: function()
                                {
                                    var dateStr = prompt('Enter a date in YYYY-MM-DD format');
                                    var date = new Date(dateStr + 'T00:00:00'); // will be in local time

                                    if (!isNaN(date.valueOf()))
                                    { // valid?
                                        calendar.addEvent(
                                            {
                                                title: 'dynamic event',
                                                start: date,
                                                allDay: true
                                            });
                                        alert('Great. Now, update your database...');
                                        //update data
                                    }
                                    else
                                    {
                                        alert('Invalid date.');
                                    }
                                }
                            }
                    },
                //height: 700,
                editable: false,
                eventLimit: true, // allow "more" link when too many events
                views:
                    {
                        sevenDays:
                            {
                                type: 'agenda',
                                buttonText: '7 Days',
                                visibleRange: function(currentDate)
                                {
                                    return {
                                        start: currentDate.clone().subtract(2, 'days'),
                                        end: currentDate.clone().add(5, 'days'),
                                    };
                                },
                                duration:
                                    {
                                        days: 7
                                    },
                                dateIncrement:
                                    {
                                        days: 1
                                    },
                            },
                    },
                events:{
                    url: '{{ path('calendar_fetchData', {'id': user.Id}) }}',
                    method: 'POST',
                    extra_params: {
                        month: this.getDate().getMonth(),
                    }
                },
            });

        calendar.render();



    });

</script>

我已经尝试过$。和 $(#calendar) 和 calendarEl。但这不起作用

它告诉我提供更多细节,但这已经足够了。我可以告诉你,我已经尝试过其他主题的答案,但没有奏效。

标签: javascriptfullcalendar

解决方案


推荐阅读