我想在检索事件数据时fullcalendar提交的请求中添加名为foo
的参数。根据{{3}},这可以通过以下方式实现:
var getFoo() = function() {
// implementation omitted
};
$('#calendar').fullCalendar({
loading: function(isLoading) {
// CAN I SOMEHOW UPDATE foo FROM HERE?
},
events: {
url: '/myfeed.php',
type: 'POST',
data: {
foo: getFoo()
}
}
});
我希望每次请求日历事件数据时计算foo
参数的值,但似乎fullcalendar仅在第一次加载时调用getFoo()
,然后重新使用每个后续请求的值。
我已经尝试使用在加载数据之前立即触发的loading
事件,但我无法弄清楚如何从此函数中更新foo
参数。
我按照下面的建议进行了处理:
$('#calendar').fullCalendar({
events: function(start, end, callback) {
$.ajax({
url: 'getCalendarEvents',
dataType: 'json',
data: {
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000),
foo: getFoo()
},
success: function(doc) {
var events = eval(doc);
callback(events);
}
});
},
});
答案 0 :(得分:1)
也许您可以使用events as function创建自己的ajax请求。
var getFoo() = function() {
// implementation omitted
};
$('#calendar').fullCalendar({
events: function(start, end, callback) {
var myFoo = getFoo();
$.ajax({
url: 'myxmlfeed.php',
dataType: 'xml',
data: {
// our hypothetical feed requires UNIX timestamps
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000),
foo: myFoo
},
success: function(doc) {
var events = [];
$(doc).find('event').each(function() {
events.push({
title: $(this).attr('title'),
start: $(this).attr('start') // will be parsed
});
});
callback(events);
}
});
}
});
答案 1 :(得分:0)
尝试将lazyFetching设置为false。我猜你有这个问题,因为fullCalendar试图从不必要的ajax请求中拯救你。