我使用来自 http://arshaw.com/fullcalendar/ 的 fullcalendar jquery 插件 并且我在我的网站上使用了 knockout js。
我添加了事件数组,日历的来源是什么。用户可以修改事件(数组)。
然后我想序列化事件数组,通过 ajax 发送,但我不能,因为日历修改了我的数组,并将一个循环放入源数组。我怎样才能删除更改。为什么我的数组中有一个循环?我看了,这里面可能有一个 DOM 对象。
Chrome sendrequest error: TypeError: Converting circular structure to JSON
var a = [];
a.push({
title: "Event2",
start: "2013-09-05"
});
a.push({
title: "Event2",
start: "2013-09-15"
});
$("#calendar").fullCalendar({
events: a,
header: {
left: "title",
center: "",
right: "today prev,next"
},
editable: false
});
console.log(JSON.stringify(a));
TypeError:将循环结构转换为 JSON
我该如何解决? 循环的原因是什么?
fiddle 例子,你可以看到我的问题:
最佳答案
插件正在修改您的数据。
如果你跑
console.log(a)
在您的 console.log 之前,您可以看到问题。一种解决方案是只返回您需要的字段,而不返回具有循环递归的字段。
例子:
console.log(JSON.stringify(a.map(function(ai) { return {title: ai.title, start: ai.start}})));
关于javascript - 如何序列化全日历源。将循环结构转换为 JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964844/