【问题标题】:Fullcalendar V5 slotMinTime doesn't work for meFullcalendar V5 slotMinTime 对我不起作用
【发布时间】:2023-01-31 05:52:32
【问题描述】:

我尝试在我的 Fullcalendar v5 上创建 slotMinTime 和 slotMaxTime,但没有显示任何内容。我的全日历已经开始到 00:00:00(默认)。 我试着关注这个https://fullcalendar.io/docs/slotMinTime 但我做不到

document.addEventListener('DOMContentLoaded', () => {
            var calendarEl = document.getElementById('calendar-holder');
            var calendar = new FullCalendar.Calendar(calendarEl, {
                dateClick: function(info) {
                    window.location.href = "http://127.0.0.1:8000/booking/new/" + info.dateStr;
                },
                validRange: {
                    start: new Date(),
                    end: '2022-06-01'
                },
                defaultView: 'timeGridWeek',
                slotMinTime: "07:00",
                allDaySlot: false,
                editable: true,
                duration: '01:00',
                eventSources: [
                    {
                        url: "{{ path('fc_load_events') }}",
                        method: "POST",
                        extraParams: {
                            filters: JSON.stringify({})
                        },
                        failure: () => {
                            // alert("There was an error while fetching FullCalendar!");
                        },
                    },
                ],
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'timeGridWeek',
                },
                buttonText: {
                    timeGridWeek:'semaine',
                    today:'aujourd\'hui'
                },
                plugins: [ 'interaction', 'dayGrid', 'timeGrid' ], // https://fullcalendar.io/docs/plugin-index
                timeZone: 'Europe/Paris',
                locale: 'fr',
                eventDrop: function(drop) {
                    window.location.href = "http://127.0.0.1:8000" + drop.event.url + "/edit/" + drop.event._instance.range.start + "/" + drop.event._instance.range.end;
                },
            });
            calendar.render();
        });

【问题讨论】:

    标签: fullcalendar fullcalendar-5


    【解决方案1】:

    你的问题是你正在使用 FullCalendarv4, 不是 v5

    将您的原始代码从 slotMinTime 更改为 minTime 并将 slotMaxTime 更改为 maxTime 并且它会起作用!

    继续使用您的 v4 文件,并使用

    slotMinTime: "07:00",
    slotMaxTime: "18:00",
    

    或者,将您的 JS 文件引用升级到 v5,然后使用

    slotMinTime: "07:00",
    slotMaxTime: "18:00",
    

    【讨论】:

    • 非常感谢,它运行良好,我只是质疑,可以根据当前用户隐藏或显示事件。例如,如果 Paul(当前用户)登录并且他添加了一个事件(他看到这个事件和他的信息(姓名,时间)),Jack(没有当前用户)可以看到一个简单的文本,例如(“约会已经制作”)
    • 很高兴听到。随时接受/批准我的回答。在我看来,最简单的方法是将用户 id 传递给后端,如果数据中不是当前用户,则调整返回的数据。要么不发送其他用户的数据,要么将标题调整为“已预约”。您可以在 JavaScript 中执行此操作,但您需要在每行数据中发送 userId,与 JavaScript 保存的 User Id 进行比较,如果不匹配则呈现不同的标题。
    • 好的,我稍后再试,但我把这个代码放在eventSourcesFullcalendar 中?我不知道javascript代码
    • 我成功地根据用户更改了标题,但我使用eventRender(Fullcalendar v4)我没有成功升级到 v5
    • 很高兴听到@ThomasDaSilva - 如果您有任何不同的问题,您也许应该开始新的 StackOverflow 问题,社区将尽力提供帮助
    【解决方案2】:

    将 minTime 用于您的方法的更好方法是

    scrollTime: '08:00'

    这样你就不会失去之前的所有时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多