我正在使用FullCalendar v2.6.0
。
我可以创建一个新事件并渲染相同的事件。但如果我更新事件,我会得到以下错误: -
TypeError: b._start is undefined
...=c.allDay&&(c.allDay=b.allDay),u(c),f={start:b._start.clone(),end:b._end?b._end....
Javascript代码
var eventRequestProperties = {
"startDate": new Date($('#appStartTime').val()),
"endDate": new Date($('#appEndTime').val()),
"title": $('#myEventName').val(),
"description": $('#myEventdescription').val(),
"allDay": ($('#appAllDay').val() == "true"),
"id":evtId
}
$.ajax({
url: '/changeEvent/updateEvent',
type: 'POST',
dataType: 'json',
data: JSON.stringify(eventRequestProperties),
contentType: "application/json; charset=utf-8",
success: function(response) {
$("#calendar").fullCalendar('updateEvent',response,true);
}
});
向我的spring控制器发出Ajax调用,我只是设置属性并将pojo对象作为响应发回。响应附在图像上。
class EventRequestProperties {
private Long id;
private String title;
private String description;
private String endDate;
private String startDate;
private boolean allDay;
}
此外,当我第一次从服务器加载事件时,我再次遇到类似问题,这次:
TypeError: a.start is undefined
...unction v(a){null==a.allDay&&(a.allDay=!(a.start.hasTime()||a.end&&a.end.hasTime...
码
$.ajax({
url: '/shootSchedule/changeEvent/loadEvents',
type: 'POST',
dataType: 'json',
data: JSON.stringify(eventRequestProperties),
contentType: "application/json; charset=utf-8",
success: function(response) {
var events = [];
events = response.myEvents;
$("#calendar").fullCalendar('renderEvent',events,true);
}
});
此处事件的数组如下:
[Object { id=8, title="lunchdf", description="lunch", more...}]
而不是events
,如果我events[0]
,它可以正常工作并显示事件。
答案 0 :(得分:0)
在fullcalendar.js中,即使我们提到idorFilter,clientEvents方法也会返回事件数组。因此我们需要像使用event [0]一样使用索引:
event = $('#calendar').fullCalendar( 'clientEvents',response.event.id);
event = $.extend(event[0],response.event);
$('#calendar').fullCalendar( 'updateEvent', event);