在 FullCalendar 中为 Ajax 调用后的假日着色



我正在和 http://fullcalendar.io/一起工作。我的目的是为假期赋予不同的背景颜色。经过大量搜索,我可以说一个好的解决方案是使用 dayRender 钩子。但是如何获取假期列表,时间呢?

解决方案 1:每天调用 Ajax。

dayRender: function (date, cell) {
    $.ajax({
        url: '/myproject/holidays?date='+date,
        type: "POST",
        success: function(isHoliday) {
            if (isHoliday) {
                cell.css("background-color", "red");
            }
        }
    });
}

它应该可以工作,但是...阿贾克斯每天都在打电话?这似乎不是一个好的解决方案。

解决方案 2:一个 ajax 调用以获取所有假期

dayRender: function (date, cell) {
    if ($.inArray(date, holidayList)) {
        cell.css("background-color", "red");
    }
}

"假日列表"之前在某个地方被获取的地方。这是我的问题。在什么时候之前?我如何确定在调用 dayRender 之前已完成 holidayList 的获取?换句话说:是否有我可以依靠的钩子来获取假期列表?

谢谢

我在这里看到的两个选项:

  1. 仅在假期获取 Ajax 请求完成后初始化整个日历(同时显示加载器/微调器(。简单,但不"漂亮"。

  2. 假日获取 Ajax 请求完成后,刷新整个日历视图。遗憾的是,由于内部reinitView方法没有导出以在外部调用,因此您必须再执行几个步骤:

    var fcEl = $('#calendar'),
        view = fcEl.fullCalendar('getView');
    view.unrenderDates();
    view.renderDates();
    fcEl.fullCalendar('refetchEvents');
    

相关内容

  • 没有找到相关文章

最新更新