我知道这个话题可能很无聊,但我似乎无法找到问题的答案。而正在发生的事情是,当我使用Promises时,我无法在FullCalendar中呈现事件。我不正确地使用它们吗?
请查看下面的代码,
$.getScript('http://arshaw.com/js/fullcalendar-1.6.4/fullcalendar/fullcalendar.min.js',function(){
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
function getData(){
var prom = new Promise(function(fulfilled, rejected){
$.ajax({
url: "control.php",
type: "GET",
data: "function=XML",
success: function(response){
fulfilled(response);
},
error: function(error){
rejected(error);
}
});
});
return prom;
}
getData().then(assignData,errorHandlingData);
function assignData(variable){
$('#cal').fullCalendar({
header: {
left: 'prev,next,today',
right: 'today,prev,next',
center: 'title'},
editable: false,
events: variable,
height: $(window).height() - 200
});
$('#source-modal').on('shown.bs.modal', function () {
$("#cal").fullCalendar('render');
});
}
function errorHandlingData(variable){
alert('Error Handling the data', variable);
console.log('Error Handling the data', variable);
}
});
如果我在这个assignData()声明之后放置一个alert(),我可以看到数据,但它没有被分配给事件,因此它们不会被渲染。
非常感谢您对此主题的帮助。
答案 0 :(得分:1)
我找到了自己问题的答案,将代码更改为不同的代码。
<强> JAVASCRIPT 强>
$.getScript('http://arshaw.com/js/fullcalendar-1.6.4/fullcalendar/fullcalendar.min.js',function(){
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#cal').fullCalendar({
header: {
left: 'prev,next,today',
right: 'today,prev,next',
center: 'title'},
events: '/TRTalpha/main/control/feed.php',
editable: false,
height: $(window).height() - 200
});
$('#source-modal').on('shown.bs.modal', function () {
$("#cal").fullCalendar('render');
});
});
<强> PHP 强>
$result = $model->getAllReservationsUser($_SESSION['eNumber']);
echo json_encode($result);
<强>的MySQL 强>
Select rs.idReserv as 'id', rs.date as 'start',
CONCAT(rt.name,', ',rt.time) as 'title'
FROM reservation rs inner join routes rt on rs.fk_route = rt.id_route
WHERE eNum = penum;
我更改了我的存储过程以检索具有不同标头的信息,这样当我将数据编码为JSON时,这将符合FullCalendar的标准。我知道这会消耗资源,但是在MySQL中更改查询我可以在6个月的时间内获得数据。