我想在fullcalendar中更新我的json,以下是我想要做的。我有一个JSON字符串,我正直接尝试将其输入到完整日历中的事件对象中。
-->
var JSON[
{
"id": "1", // Optional
"title": "Demo event", // Required
"start": "2013-08-28 10:20:00", // Required
"end": "2013-08-28 11:00:00", // Optional
"allDay": false, // Optional
"url": "http://google.com", // Optional, will not open because of browser-iframe security issues
"className": "test-class", // Optional
"editable": true, // Optional
"color": "yellow", // Optional
"borderColor": "red", // Optional
"backgroundColor": "yellow", // Optional
"textColor": "green" // Optional
},
{
"id": "2", // Optional
"title": "Demo event 2", // Required
"start": "2013-08-27 10:20:00", // Required
"end": "2013-08-27 11:00:00", // Optional
"allDay": false, // Optional
"url": "http://google.com", // Optional, will not open because of browser-iframe security issues
"className": "test-class", // Optional
"editable": true, // Optional
"color": "yellow", // Optional
"borderColor": "red", // Optional
"backgroundColor": "yellow", // Optional
"textColor": "green" // Optional
}
];
,
然后,我想将某个下拉事件(未显示在fiddle中)上的JSON修改为一个新字符串,并尝试在日历上获取新事件。
完整日历无效。
http://jsfiddle.net/pratik24/u8Ksw/28/
谢谢你的帮助。感谢。
您没有调用正确的fullCalendar方法来呈现新事件。
这将不起作用,因为它只用于第一次呈现事件:
$("#demo-calendar").fullCalendar('renderEvents', JSON);
相反,您需要删除日历上的事件并刷新它们:
$("#demo-calendar").fullCalendar('removeEvents');
$("#demo-calendar").fullCalendar('addEventSource', JSON);
检查Fiddle:http://jsfiddle.net/shaunp/u8Ksw/29/
注意有一个名为refetchEvents
的fullCalendar方法,但它不适用于一系列事件,例如您创建的事件,因此您必须手动删除这些事件,然后重新添加事件源。
您需要添加以下行:
$("#demo-calendar").fullCalendar('removeEvents');
$("#demo-calendar").fullCalendar('addEventSource', JSON, true);
在日历中添加新事件时,切换月份时这些事件可能会消失。要解决此问题,请将stick: true
添加到要添加到作用域的事件对象中。