我正在使用FullCalendar和我无法控制的事件源。此源不会像FullCalendar所需的那样返回JSON,并且事件在它们应该的位置“一级”。
例如,Feed返回的JSON类似于:
{
"sourcename": [
{
"start": "2016-04-18 14:00",
"end": "2016-04-18 18:00",
"title": "Working Group 1 meeting",
"className": "wg",
"url": "http://cnn.com/",
"type": "restricted"
},{
"start": "2016-04-18 14:00",
"end": "2016-04-18 18:00",
"title": "Working Group 2 meeting",
"className": "wg",
"url": "http://cbsnews.com/",
"type": "restricted"
}
]
}
FullCalendar上是否有任何选项允许在返回的JSON或任何其他表单上指定“路径”以使用此类事件源?
答案 0 :(得分:1)
由于您无法控制Feed,我猜您events as a function是唯一的选择。
这使您可以控制请求,但是您需要发送自动附加到GET请求的参数(我在谈论data
参数)。
在AJAX请求中,只需使用事件调用callback
函数(函数的第4个参数),类似于data.sourcename
。
$('#calendar').fullCalendar({
events: function(start, end, timezone, callback) {
$.ajax({
url: '/fullcalendar/events17',
dataType: 'json',
data: {
start: start.format('YYYY-MM-DD'),
end: end.format('YYYY-MM-DD')
},
success: function(data) {
callback(data.sourcename);
}
});
}
});