javascript - FullCalendar 4:通过 AJAX 的 businessHours 未及时显示GridWeek
问题描述
每次我选择不同的资源时,我都会渲染一个使用 businessHours 和 Events 更新的日历。
我面临的问题是营业时间。我得到了正确的 JSON,因为它在 resourceTimeGridDay 中运行良好,但是当我切换到 timeGridWeek 时,没有显示营业时间。
我通过 AJAX 获取资源,返回的 JSON 结构如下:
[
{
"id":"2-1",
"title":"Silvano",
"businessHours":[
{
"startTime":"08:00",
"endTime":"12:30",
"daysOfWeek":"[1]"
},
{
"startTime":"14:00",
"endTime":"17:30",
"daysOfWeek":"[1]"
},
{
"startTime":"08:00",
"endTime":"15:00",
"daysOfWeek":"[2]"
},
{
"startTime":"08:00",
"endTime":"12:30",
"daysOfWeek":"[3]"
},
{
"startTime":"14:00",
"endTime":"17:30",
"daysOfWeek":"[3]"
},
{
"startTime":"08:00",
"endTime":"15:00",
"daysOfWeek":"[4]"
},
{
"startTime":"08:00",
"endTime":"12:30",
"daysOfWeek":"[5]"
},
{
"startTime":"14:00",
"endTime":"17:30",
"daysOfWeek":"[5]"
}
],
"eventColor":"#bdbdbd",
"servizi":[
"2"
]
}
]
在日历渲染代码中复制/粘贴这些值,会显示 businessHours:
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'timeGridWeek',
businessHours: [{"startTime":"08:00","endTime":"12:30","daysOfWeek":"[1]"},{"startTime":"14:00","endTime":"17:30","daysOfWeek":"[1]"},{"startTime":"08:00","endTime":"15:00","daysOfWeek":"[2]"},{"startTime":"08:00","endTime":"12:30","daysOfWeek":"[3]"},{"startTime":"14:00","endTime":"17:30","daysOfWeek":"[3]"},{"startTime":"08:00","endTime":"15:00","daysOfWeek":"[4]"},{"startTime":"08:00","endTime":"12:30","daysOfWeek":"[5]"},{"startTime":"14:00","endTime":"17:30","daysOfWeek":"[5]"}]
});
calendar.render();
});
但是我需要动态获取它们(可以每周不同)。我查看了文档,但找不到任何答案。任何提示将不胜感激。
解决方案
通过在基于 resourceTimeGrid 的 Calendar 中添加自定义视图解决的问题:
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'interaction', 'resourceDayGrid', 'timeGrid', 'list', 'resourceTimeGrid' ],
timeZone: 'UTC',
height: 'parent',
header: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,customResourceTimeGridWeek,resourceTimeGridDay,listWeek'
},
views: {
customResourceTimeGridWeek: {
type: 'resourceTimeGrid',
duration: { days: 7 },
buttonText: 'Week'
}
},...
推荐阅读
- c# - DataGrid 列标题的垂直方向
- ubuntu - bazel 构建的 deb 可以上传到 PPA 吗?
- typescript - 根据泛型参数返回函数签名
- android - 如何在回收站视图的项目之间插入视图?
- android - 我想使用 var 来确定将哪张照片加载到图像视图中-Kotlin
- if-statement - 如何在 Dart 的案例中访问 Switch 参数
- indexing - 如何访问 GAMS 集中的第 n 个元素?
- react-native - 如何在本机反应中隐藏和显示按钮单击视图?
- django - 归档、处理相关的删除
- python-3.x - 如何基于多个字段分组并显示所有列