JS,fullcalendar,"events" 参数没有得到执行函数的结果
JS, fullcalendar, the "events" parameter doesn't get the result of an executed function
answer : 错误不在同步或异步调用中,而是在使用 fullcalendar 设置的功能时。
事件:函数(开始,结束,时区,回调){...}
我可以看到信息切换我如何管理 ajax (sjax...) 的结果,但日历没有获取信息。
"events : getJSON," 行似乎不起作用。但是函数是call
现在,我有一个新问题,函数 getJSON 从 web 方法获取 JSON,但日历不显示它们。
我也尝试用注释代码得到结果,但它不起作用。
这里有两个来自 js 的方法:
function getJSON() {
start = $('#calendar').fullCalendar('getDate').format();
duration = $('#calendar').fullCalendar('getCalendar').moment().format();
alert(start);
var retour;
$.ajax({
async: false,
type: 'POST',
url: "ConsultationPlanning.aspx/getPlanning",
data: '{"start": "' + start + '", "end": "' + duration + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
retour = JSON.parse(msg.d);
retour = msg.d;
},
error: function () { alert("erreur");}
});
alert(retour);
return retour;
};
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
hiddenDays: [0],
defaultView: 'agendaWeek',
editable: false,
allDaySlot: false,
selectable: false,
events: getJSON,
/*function (start, end, callback) {
start = $('#calendar').fullCalendar('getDate').format();
duration = $('#calendar').fullCalendar('getCalendar').moment().format();
$.ajax({
type: 'POST',
url: "ConsultationPlanning.aspx/getPlanning",
data: '{"start": "' + start + '", "end": "' + end + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var rdv = [];
alert(msg.d);
//var events =JSON.parse(msg.d);
$(msg.d).each(function () {
rdv.push({
id: $(this).attr('id'),
title: $(this).attr('title'),
start: $(this).attr('start'),
})
})
alert("first date : " + rdv[0].start);
//"first date: 2015-05-06T14:33:00" is what i get
callback(rdv);
//the callback generate an error message. it says, it's waiting for a function
}
})
}
});
我几天前发布了一个类似的问题,但它与其他实现有关:
$.ajax
触发异步调用;只有在您的浏览器收到对其请求的响应后,您的 retour
变量的值才会设置为您期望的值。
这就是为什么用 callback
参数调用 fullcalendar 的 events
的原因:
function getJSON(start, end, callback) {
...
$.ajax({
...
success : function(msg) {
retour = JSON.parse(msg.d);
callback(retour);
}
});
// no need to return anything here
}
请在此处查看完整日历 v1.* 的文档:events function
注意:如果您使用的是 fullcalendar v2 或更高版本,您应该将函数签名更改为:
function getJSON(start, end, timezone, callback) {
...
请在此处查看 v2.* 文档:events function
answer : 错误不在同步或异步调用中,而是在使用 fullcalendar 设置的功能时。 事件:函数(开始,结束,时区,回调){...}
我可以看到信息切换我如何管理 ajax (sjax...) 的结果,但日历没有获取信息。
"events : getJSON," 行似乎不起作用。但是函数是call
现在,我有一个新问题,函数 getJSON 从 web 方法获取 JSON,但日历不显示它们。
我也尝试用注释代码得到结果,但它不起作用。
这里有两个来自 js 的方法:
function getJSON() {
start = $('#calendar').fullCalendar('getDate').format();
duration = $('#calendar').fullCalendar('getCalendar').moment().format();
alert(start);
var retour;
$.ajax({
async: false,
type: 'POST',
url: "ConsultationPlanning.aspx/getPlanning",
data: '{"start": "' + start + '", "end": "' + duration + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
retour = JSON.parse(msg.d);
retour = msg.d;
},
error: function () { alert("erreur");}
});
alert(retour);
return retour;
};
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
hiddenDays: [0],
defaultView: 'agendaWeek',
editable: false,
allDaySlot: false,
selectable: false,
events: getJSON,
/*function (start, end, callback) {
start = $('#calendar').fullCalendar('getDate').format();
duration = $('#calendar').fullCalendar('getCalendar').moment().format();
$.ajax({
type: 'POST',
url: "ConsultationPlanning.aspx/getPlanning",
data: '{"start": "' + start + '", "end": "' + end + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var rdv = [];
alert(msg.d);
//var events =JSON.parse(msg.d);
$(msg.d).each(function () {
rdv.push({
id: $(this).attr('id'),
title: $(this).attr('title'),
start: $(this).attr('start'),
})
})
alert("first date : " + rdv[0].start);
//"first date: 2015-05-06T14:33:00" is what i get
callback(rdv);
//the callback generate an error message. it says, it's waiting for a function
}
})
}
});
我几天前发布了一个类似的问题,但它与其他实现有关:
$.ajax
触发异步调用;只有在您的浏览器收到对其请求的响应后,您的 retour
变量的值才会设置为您期望的值。
这就是为什么用 callback
参数调用 fullcalendar 的 events
的原因:
function getJSON(start, end, callback) {
...
$.ajax({
...
success : function(msg) {
retour = JSON.parse(msg.d);
callback(retour);
}
});
// no need to return anything here
}
请在此处查看完整日历 v1.* 的文档:events function
注意:如果您使用的是 fullcalendar v2 或更高版本,您应该将函数签名更改为:
function getJSON(start, end, timezone, callback) {
...
请在此处查看 v2.* 文档:events function