【发布时间】:2015-01-18 03:53:32
【问题描述】:
当我编辑全天活动时,fullCalendar (2.0.2) 会将其转换为非全天活动。在日历视图中单击事件时,我会加载一个允许用户编辑详细信息的模式。选择 allDay 或 time 不是其中的一部分,但 date 是。单击提交后,我会触发一个 AJAX 调用,该调用会更新事件服务器端,然后返回包含事件 ID 的 JSON 数据。然后我查询 fullCalendar 以获取正确的事件。此时allDay和_allDay都还是true:
theEvent = $('#calendar').fullCalendar('clientEvents', data.id)[0];
> theEvent.allDay
true
> theEvent._allDay
true
然后我用编辑后的事件对象更新 fullCalendar:
calendar.fullCalendar('updateEvent', theEvent);
编辑完成后,事件会显示在日历中,12a 会显示在事件标题之前。
我能够追踪到 fullCalendar 中的 mutateEvent 函数,该函数似乎在以下条件下覆盖了我的设置:
// current values are:
// event.allDay: true
// oldAllDay: true
// newStart: Moment object - Mon Jan 19 2015 00:00:00 GMT-0600 (CST)
// newEnd: null
// detect new allDay
if (event.allDay != oldAllDay) { // if value has changed, use it
newAllDay = event.allDay;
} else { // otherwise, see if any of the new dates are allDay
newAllDay = !(newStart || newEnd).hasTime();
}
我不认为我做错了什么,但我不能确定。有人对此有意见吗?请和谢谢。目前我无法升级到更新的版本,因为这个版本 (2.0.2) 似乎与我的客户选择的 Ace Admin Bootstrap 主题有些关联。
或者,我希望能够只允许 allDay 事件,这样我以后就不必担心这个了。
【问题讨论】:
-
你试过最新版本吗?我知道你说它可能与你的模板有关;但也许值得一试,看看它是否是在新版本中修复的错误。然后,您可以决定如何升级它和模板(如果它有效)。
标签: fullcalendar