Fullcalendar minTime ajax



我正在尝试通过 viewRender 上的 ajax 请求根据数据库计划更改完整日历中的 minTime,但它进入了一个循环。

我的日历的一部分选项:

var calendarOptions = {
    header: {
        left: ' today',
        center: 'prev,title,next',
        right: 'agendaWeek,resourceDay'
    },
    defaultView: 'resourceDay',

视图渲染:

viewRender: function(view, element){
        var curDate = ($('#calendar').fullCalendar('getDate')).format('d-DD-MM').split('-');
        var curWeekDay = curDate[0];
        var curMonthDay = curDate[1];
        var curMonth = curDate[2];
        $.ajax({
            url: 'calendar/getBusinessHours',
            type: 'GET',
            data: {
                'day': curWeekDay,
                "_token": $('body').find( 'input[name=_token]' ).val()
            },
            success: function (response) {
                $('#calendar').fullCalendar("destroy");
                $("#calendar").fullCalendar(
                    $.extend(calendarOptions, {
                        defaultDate: currentDate,
                        minTime: response[0].open_time+':00',
                        maxTime: response[0].close_time+':00'
                    })
                );
            }
        });
    },

ajax 响应是 '08:00:00',所以那里没有问题;

我没有

测试过这个,但我相信你的问题来自破坏fullCalendar并重新设置它。本质上,发生的情况是你的日历加载并且视图被渲染,然后你发出ajax请求,销毁日历,创建一个再次触发viewRender的新日历等等。

success: function (response) {
            $('#calendar').fullCalendar("destroy");
            $("#calendar").fullCalendar(...

您可以在初始化日历之前加载 minTime 和 maxTime(使用 ajax 调用从数据库中获取值,并且仅在从后端检索值时才初始化日历,以便您可以将它们作为选项传递给初始化)或在不同的事件中更改它们的值(不是 viewRender)

您还可以做的是在等式中添加一个变量并有条件地启动 AJAX - 如果日历没有使用新的 minTime 和 maxTime 重建自身。

相关内容

  • 没有找到相关文章

最新更新