我只显示最初提出20分钟slotMinutes的日历。我试图允许用户在运行中更改为10分钟slotminin。
我有一个触发以下代码的按钮:
$('#calendar').fullCalendar('option', 'slotMinutes', 10);
但我无法重新绘制屏幕以反映新设置。我试过了:
$('#calendar').fullCalendar("render")
$('#calendar').fullCalendar("refetchEvents");
我正在使用agendaWeek视图,并希望它重绘并保持在同一周。
我已经倾倒了文档。我错过了什么?
答案 0 :(得分:0)
由于这需要重新绘制整个日历,为什么不只是从视图中删除旧的#calendar实例并使用新的slotMinutes选项重新加载完整的日历?您可以使用getView()函数获取当前视图的当前view.start / view.end和view.name(http://arshaw.com/fullcalendar/docs/views/View_Object/)。 http://arshaw.com/fullcalendar/docs/views/getView/
然后在您重新绘制日历调用'goToDate'并使用上面的'开始'日期/时间更改为上次使用的日期。
它很脏但是有效。
答案 1 :(得分:0)
您无法即时更改fullcalendar的选项。目前不支持它。无论如何,唯一的方法是重建整个对象。
关于此增强功能的讨论是here
我根据我的需要在github做了一个脏叉子,它可能适合你。
我在这里粘贴了差异(更新你的fullcalendar.js):
function option(name, value) {
if (value === undefined) {
return options[name];
}
if(options[name] === value)
return;
options[name] = value;
if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
updateSize();
}
else {
options.events = options.backupEvents;
$(element).fullCalendar('destroy');
$(element).fullCalendar(options);
}
}