FullCalendar-在cookie中保存事件
-
12-12-2019 - |
题
我试图创建一个具有外部拖动功能的FullCalendar,您可以将添加到日历中的事件保存在cookie中(我更愿意将其保存在服务器上,但这不是一个选项)。我正在使用jquery cookie插件来使其更容易。
到目前为止,我得到的是保存功能(我相信它正在工作):
function save() { var eventsFromCalendar = $('#calendar').fullCalendar( 'clientEvents'); $.cookie("DSCalendar", eventsFromCalendar, {expires: 1}); }
...但是当我下次打开它时,我无法让日历包含此内容。我试过这样做,但它似乎根本不起作用:
$(document).ready(function() {
....
var savedEvents = $.cookie("DSCalendar");
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
events: savedEvents,
...........
有没有可能有人曾经这样做过,或者知道如何在不使用服务器的情况下保存事件?
解决方案
Cookie插件无法存储我认为复杂的对象数组。这就是为什么我建议使用 JSON.stringify
.但是,返回的对象数组 .fullCalendar('clientEvents')
包含递归对象引用-所以甚至 JSON.stringify
无法成功转换此。
看看这个小提琴:http://jsfiddle.net/100thGear/v6tSd/
我在将其存储在cookie中之前创建了一个temp对象数组,然后 JSON.stringify
和 JSON.parse
完美地工作。
如果有帮助,请告诉我。
其他提示
在fullcalandar v1中,ClientEvents的内容包括一个名为“源”的关键对象对,如果您要远程加载数据。该对具有其中的远程数据的URL,如果您尝试串行ClienceEvents以将ClientEvents保存或发送到需要字符串的位置,则返回错误“将圆形结构转换为JSON”的错误。我使用的工作是用以下脚本删除“源”键和对象:
var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
for (var i = 0; i < eventsFromCalendar.length; i++) {
delete eventsFromCalendar[i].source
}
var jstrng = JSON.stringify(eventsFromCalendar);
. 不隶属于 StackOverflow