翡翠模板,如何将具体对象传递给页面?
我有我的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}' )
作品。