在FullCalendar中尝试使用setOption方法时抛出Js错误
fullcalendar 未捕获的类型错误:无法读取未定义的属性(读取“setoption”)
var calendar = new FullCalendar.Calendar(calendarEl, {
...
}).render();
calendar.setOption('height', 520);
在呈现日历之前不需要提供选项(如this answer中所建议)。
问题实际上来自您的函数链接。
通过将
.render()
放在 new FullCalendar.Calendar...
命令的末尾,使 calendar
变量实际上包含 render()
函数的返回值,而不是 fullCalendar 构造函数的返回值。由于 render()
不返回日历对象(事实上,它 根本不返回任何东西 - 因此错误消息中的 undefined
问题),您不能在其上调用 setOption
。
只需直接分配
calendar
并在下一行调用render()
,您的问题就解决了。
var calendar = new FullCalendar.Calendar(calendarEl, {
...
});
calendar.render();
calendar.setOption('height', 520);
对于 FullCalendar 5.0 及更高版本。 setOption 应该在渲染函数之前被调用。 例如:
会导致js错误
var calendar = new FullCalendar.Calendar(calendarEl, {
...
}).render();
calendar.setOption('height', 520);
会工作
var calendar = new FullCalendar.Calendar(calendarEl, {
...
});
calendar.setOption('height', 520);
calendar.render();