我正在使用Fullcalendar和积压区域,最终用户可以在其中查看并拖放日历中的事件。用户还可以按位置,优先级和负责(以及更多......)他想要查看的事件进行过滤:这会更新待办事项和日历。这很好用,但到目前为止,积压和日历通过2个不同的ajax调用进行更新。因此,当事件出现在这两个区域时存在延迟,并且代码有点复杂,因为我必须管理两个Json流(在客户端和服务器端),尽管它们使用相同的参数和相同的数据库和表,没有提到第二个MySQL连接成本:-)。我想知道是否可以通过Ajax调用只接收两个Json的一个数组,并使用一个在日历上呈现事件并使用另一个来刷新积压列表。
以下是我使用的代码:
eventSources: [
{
url: './ajax/_schedule_json.php',
type: 'POST',
data: function() {
return {
location_id: $('#location_id').val(),
priority_id: $('#priority_id').val(),
responsible_id: $('#responsible_id').val(),
...
};
},
success: function(data) { },
fail: function(data) { }
}
],
谢谢!
答案 0 :(得分:0)
实际上这很容易。假设您的服务器端脚本生成了两个json(事件和积压)的数组,您只需要打开文件fullcalendar.js并搜索:
success: function(events) {
events = events || [];
var res = applyAll(success, this, arguments);
if ($.isArray(res)) {
events = res;
}
callback(events);
}
修改第一行和第二行,如下所示:
success: function(json) { // Modified
events = json.events || []; // Modified
var res = applyAll(success, this, arguments);
if ($.isArray(res)) {
events = res;
}
callback(events);
}
然后你可以在主javascript文件中使用第二个json:
eventSources: [
{
...
success: function(data) {
$.each(data.backlog, function (i, item) {
// do whatever you want with the backlog
});
}
}
],