我只显示最初出现20分钟槽分钟的日历。我正在尝试允许用户在飞行中更改为10分钟的slot分钟。
我有一个触发以下代码的按钮:
$('#calendar').fullCalendar('option', 'slotMinutes', 10);
但是我无法让屏幕重新绘制以反映新的设置。我试过了:
$('#calendar').fullCalendar("render")
$('#calendar').fullCalendar("refetchEvents");
我正在使用议程周视图,并希望它重新绘制并保持在同一周。
我已经把文件倒了。我错过了什么?
既然这需要重新绘制整个日历,为什么不直接从视图中删除旧的#calendar实例并使用新的slotMinutes选项重新加载完整的日历呢?你可以得到当前视图。start/view。使用getView()函数获取当前视图的end和view.name(http://arshaw.com/fullcalendar/docs/views/View_Object/)。http://arshaw.com/fullcalendar/docs/views/getView/
然后在你重新绘制日历后调用'goToDate'并使用'start'日期/时间从上面更改到最后使用的日期。
你不能即时更改完整日历的选项。目前不支持。要做到这一点,唯一的方法就是重建整个对象。
关于这个增强的讨论在这里
我在github上做了一个脏叉来满足我的需要,它可以适合你的。
我已经在这里粘贴了diff(更新你的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);
}
}