将循环引用的对象从服务器传递到客户端JavaScript,同时保持循环
我试图从node.js服务器的循环引用传递一个对象到客户端JavaScript。
服务器(node.js):
var object = { circular: object } //.... app.get('/', function(req, res){ res.render('index.jade', {object: object}); });
客户端Jade / Javascript
script var object = !{JSON.stringify(object)};
在这里我得到的object
包含循环引用的错误。
任何方式来获得object
在客户端JavaScript, 有 或没有循环引用?
道格拉斯·克罗克福德有一个解决scheme,我已经成功地用来解决这个问题: Cycle.js
而不是只使用stringify
和parse
你会首先调用decycle
和decycle
恢复
var jsonString = JSON.stringify(JSON.decycle(parent)); var restoredObject = JSON.retrocycle(JSON.parse(jsonString));
的jsfiddle