我在CodeIgniter应用程序中使用FullCalendar plugin。我正在使用GET请求服务器端检索事件对象,并且使用与带有回调的events as a function example类似的方法在日历上不显示事件。我已经验证了GET请求正确返回json。
这是我的请求返回的json ......
[{"id":"1","title":"2011 Acura Integra (1)","start":1313996400,"color":"red"}, {"id":"15","title":"2011 Acura Integra (1)","start":1314774000,"color":"red"}]
我的电话如下......
var year = $("#year").text();
var month = $("#month").text();
$maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
year: year,
month: month -1,
header: {
left: 'prev,next today',
center: 'title',
right: ''
},
editable: true,
disableResizing: true,
events: function(start, end, callback) {
var start_timestamp = Math.round(start.getTime() / 1000);
var end_timestamp = Math.round(end.getTime() / 1000);
var url = "/tripsys/new_admin/vehicles/get_maintenance_schedule_data/" + start_timestamp + "/" + end_timestamp;
$.get(url, function(events) {
callback(events);
});
}
});
奇怪的是前一个调用正确地获取json并且回调似乎处理事件,因为如果我调用.fullCalendar('clientEvents')它会显示我传递给events方法的json,但它们不会呈现
但是,如果我将这个相同的json直接传递给我的初始FullCalendar调用,那么事件就会渲染......
var year = $("#year").text();
var month = $("#month").text();
$maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
year: year,
month: month -1,
header: {
left: 'prev,next today',
center: 'title',
right: ''
},
editable: true,
disableResizing: true,
events: [
{"id":"1","title":"2011 Acura Integra (1)","start":1313996400,"color":"red"},
{"id":"15","title":"2011 Acura Integra (1)","start":1314774000,"color":"red"}
]
});
有没有人知道为什么第一个例子没有在我的日历上呈现事件?
答案 0 :(得分:1)
原来这个问题是我用$ .get而不是$ .getJSON请求数据的原因
这是正确的电话......
var year = $("#year").text();
var month = $("#month").text();
$maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
year: year,
month: month -1,
header: {
left: 'prev,next today',
center: 'title',
right: ''
},
editable: true,
disableResizing: true,
events: function(start, end, callback) {
var start_timestamp = Math.round(start.getTime() / 1000);
var end_timestamp = Math.round(end.getTime() / 1000);
var url = "/tripsys/new_admin/vehicles/get_maintenance_schedule_data/" + start_timestamp + "/" + end_timestamp;
$.getJSON(url, function(events) {
callback(events);
});
}
});