fullcalendar - TypeError:b._start未定义

时间:2016-08-25 13:27:32

标签: jquery ajax spring fullcalendar

我正在使用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对象作为响应发回。响应附在图像上。

enter image description here

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],它可以正常工作并显示事件。

1 个答案:

答案 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);