我正在尝试使用接收事件数组的函数更新FullCalendar对象。
$('#sh1_cal').fullCalendar({
events: function(callback) {
$.ajax({
type: 'GET',
url: 'http://localhost:8080/getEvents',
dataType: 'json',
success: function(reply) {
//var events = [];
console.log("printing " + reply.first)
alert(typeof reply.first);
callback(reply.first);
}
});
}
});
Reply是一个包含两个数组作为其属性的对象。我正在提取第一个,似乎typeof警报返回正确的类型,但回调不起作用。有什么建议吗?
答案 0 :(得分:1)
我没有使用过这个插件,但是从文档(http://arshaw.com/fullcalendar/docs/event_data/events_function/)看来,事件函数看起来像3个参数:start,end和callback。
开始和结束是指示事件开始和结束的日期对象。你现在拥有它的方式,该函数认为有一个名为'callback'的日期对象,这就是你得到错误的原因。在JavaScript中,参数的名称并不重要(例如,您可以将其命名为'cb'或'foo'而不是'callback'),但顺序是。
尝试(未经测试):
$('#sh1_cal').fullCalendar({
events: function(start, end, callback) {
$.ajax({
type: 'GET',
url: 'http://localhost:8080/getEvents',
dataType: 'json',
success: function(reply) {
callback(reply.first);
}
});
}
});
答案 1 :(得分:0)
试试这个:
$('#sh1_cal').fullCalendar({
events: 'http://localhost:8080/getEvents'
});
不应该编写自己的ajax调用,它是内置的。
如果这不起作用,您可以发布JSON Feed的输出吗?
答案 2 :(得分:0)
尝试这个,让我知道它是否有效:
$('#sh1_cal').fullCalendar({
events: function(cb) {
$.ajax({
type: 'GET',
url: 'http://localhost:8080/getEvents',
dataType: 'json',
success: function(reply) {
return cb(reply.first);
//or try: cb(reply.first);
}
});
}(callback)
});
如果不是,请删除回调上的回报。
是否有效?
*请注意:我认为“回调”是您传入的函数并已在某处实例化。
答案 3 :(得分:0)
fullcalendar中的事件(As Function)已更改。现在第三个参数是时区。 有关FullCalendar Documentation v2
的更多信息