将一个带有循环引用的对象从服务器传递给客户端Javascript,同时保留循环 [英] Passing an object with circular references from server to client-side Javascript while retaining circularity

查看:175
本文介绍了将一个带有循环引用的对象从服务器传递给客户端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, with or without circular references?

推荐答案

Douglas Crockford有一个解决方案以前我已经成功地解决了这个问题: Cycle.js

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));

JSFiddle

这篇关于将一个带有循环引用的对象从服务器传递给客户端Javascript,同时保留循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆