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

Mas*_*iar 37 node.js pug

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

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

res.render(__dirname + '/pages/viz.jade', {
    vizJson: newJson,
});
Run Code Online (Sandbox Code Playgroud)

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

script
    sunburst(#{vizJson})
Run Code Online (Sandbox Code Playgroud)

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

问题是,渲染时我有类似的东西sunburst([Object object]).我也尝试发送JSON的字符串化版本,但是当我这样做时JSON.parse(#{vizJson})会抱怨Unexpected token &.

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

有谁知道该怎么办?

谢谢

Mas*_*iar 76

我希望这会帮助某人.我这样解决了:

script
    sunburst(!{JSON.stringify(vizJson)})
Run Code Online (Sandbox Code Playgroud)

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

  • 在执行此操作之前,请确保您的json对象不包含任何未转义的用户可控数据!`// </ script>`标签甚至在javascript中的文字字符串中也会破坏DOM,并允许任意javascript执行(参见http://escape.alf.nu/2/) (2认同)