本文介绍了将一个带有循环引用的对象从服务器传递给客户端Javascript,同时保留循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图将一个循环引用的对象从node.js服务器传递给客户端的JavaScript。
I'm trying to pass an object with circular references from node.js server to client-side javascript.
服务器(node.js):
Server (node.js):
var object = { circular: object }
//....
app.get('/', function(req, res){
res.render('index.jade', {object: object});
});
客户端Jade / Javascript
Client-side Jade/Javascript
script var object = !{JSON.stringify(object)};
这里我收到对象
包含的错误
任何在客户端JavaScript中获取对象
的方式,与
循环引用?
Any way to get the object
in client-side javascript, withcircular references?
推荐答案
Douglas Crockford有一个解决方案以前我已经成功地解决了这个问题:
Douglas Crockford has a solution for this that I have successfully used to solve this problem before: Cycle.js
而不是使用 stringify
和 parse
c $ c> decycle 并使用 retrocycle
恢复
instead of just using stringify
and parse
you would first call decycle
and restore with retrocycle
var jsonString = JSON.stringify(JSON.decycle(parent));
var restoredObject = JSON.retrocycle(JSON.parse(jsonString));
这篇关于将一个带有循环引用的对象从服务器传递给客户端Javascript,同时保留循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!