我正在使用FullCalendar,这就是我初始化它的方式:
$('#calendar').fullCalendar({
events: $('#calendar').data('source')
});
问题是响应不是FullCalendar所期望的格式,因为所有结果集都嵌套在数据下,即
{
"data":
[
{
"title": "Event1",
"start": "2011-04-04"
},
{
"title": "Event2",
"start": "2011-04-04"
}
]
}
有没有办法可以提供自定义回调,使其使用结果的数据元素作为事件源?
我试过这个
$('#calendar').fullCalendar({
events: function(start, end, timezone, callback) {
var url = $('#calendar').data('source');
$.get(url, {start: start, end: end, timezone: timezone})
.done(function( data ) {
callback(data.data);
});
}
});
但我得到的是一个JS错误说
moment.min.js:22未捕获TypeError:无法读取属性'_calendar' 未定义的
答案 0 :(得分:2)
我解决了我的问题。错误来自FulLCalendar,而不是Moment.js库
$('#calendar').fullCalendar({
events: function(start, end, timezone, callback) {
$.ajax({
url: $('#calendar').data('source'),
dataType: 'json',
data: {
start: start.format("YYYY-MM-DD"),
end: end.format("YYYY-MM-DD")
},
success: function(result) {
var events = [];
result.data.forEach(function(element) {
events.push({
title: element.title,
start: element.start
});
});
callback(events);
}
});
}
});