翡翠模板,如何将具体对象传递给页面?

我有我的node.js项目的玉模板。 我想发送一个对象到玉模板,并将其传递给页面内的一个函数(以呈现一些东西)。

我相信我会从服务器发送正确的东西

res.render(__dirname + '/pages/viz.jade', { vizJson: newJson, }); 

在客户端我做这样的事情:

 script sunburst(#{vizJson}) 

因此,在一个脚本函数中,我想调用一个函数来创build我在服务器端创build的一些json的可视化。

问题是,当呈现我有像sunburst([Object object]) 。 我也尝试发送string版本的JSON,但是当我做JSON.parse(#{vizJson})它抱怨像Unexpected token &

我发送的json总是不同的,并且具有不同的深度。

有谁知道该怎么办?

谢谢

我希望这会帮助别人。 我解决了这个问题:

 script sunburst(!{JSON.stringify(vizJson)}) 

注意!{...}包装stringify方法。

为了这个工作,你需要在服务器上进行串联。

 res.render(__dirname + '/pages/viz.jade', { vizJson: JSON.stringify(newJson), }); 

然后,如您所述,parsing客户端上的JSON。

 script sunburst(JSON.parse(#{vizJson})) 

希望有所帮助!

奇怪的是,对我来说,解决scheme没有调用JSON.parse 。 我在服务器上对我的对象进行了string处理,并使用!{vizJson}方法获取了我的对象clientside。

根据文档,非转义的string插值: http : //jade-lang.com/reference/interpolation/

在JS方面,你发回

 res.render(__dirname + '/pages/viz.jade', { vizJson: JSON.stringify(newJson), }); 

在HTML方面,我发现像这样的东西:

 JSON.parse( '!{vizJson}' ) 

作品。