fullCalendar只显示议程视图上的事件



我试图让fullCalendar JS应用程序仅在agendaView视图上显示事件,而不是在month视图上。

这是我当前的代码。问题是events函数只调用一次,在初始页面加载。根据文档(以及我使用fullCalendar的另一个站点),该函数应该在每次更改视图或日期范围时调用。

$('#calendar').fullCalendar({
    events: function ( start, end, timezone, callback ) {
        var view = $('#calendar').fullCalendar('getView');
        console.log(view.name);
        if(view.name == 'agendaDay') {
            $.ajax({
                type: 'POST',
                url: 'index.php?events=true',
                data: {
                    start: start,
                    end: end
                },
                async: true,
                success: function ( data ) {
                         callback(data);
                }
            });
        }
    },
    dayClick: function ( date, jsEvent, view ) {
        if(view.name == 'month' && jsEvent.currentTarget.className.indexOf('date-disabled') <= -1) {
            $('#calendar').fullCalendar('changeView', 'agendaDay');
            $('#calendar').fullCalendar('gotoDate', date);
        } else if(view.name == 'agendaDay') {
            var check = moment(date).format('YYYY-MM-DD');
            var today = moment(new Date()).format('YYYY-MM-DD');
            if(check > today) {
                alert(date);
            }
        }
    },
    header: {
        left:   'title',
        center: '',
        right:  'today month,agendaDay prev,next'
    },
    dayRender: function ( date, cell ) {
        var check = moment(date).format('YYYY-MM-DD');
        var today = moment(new Date()).format('YYYY-MM-DD');
        if(check <= today) cell[0].className += ' date-disabled';
    }
});

我知道这是事实,因为console.log只记录一次,单词month。它只在我刷新页面,第一次加载时调用。

我错过了lazyFetching选项。这一定是v2中的一个新选项,因为我没有预料到它。

http://arshaw.com/fullcalendar/docs/event_data/lazyFetching/

我的代码是正确的。我只需要告诉fullCalendar在每次视图更改时获取事件,以及任何其他发生的事件。
lazyFetching: false,

相关内容

  • 没有找到相关文章

最新更新