提前感谢您的帮助。我有一个困扰我的问题,我确信这很荒谬。
在app.get
请求中,我从express调用外部api,然后使用res.render
发送jade文件和json。
我可以在jade文件中成功操作这些数据,并直接在jade文件中编写JavaScript。
但是,我不能为我的生活弄清楚如何从输出的HTML引用的JavaScript文件中操作这个JSON。
例如:
router.get('/dashboard', function (req, res, next) {
// Call the external api and get data.
// Parse the data
res.render('dashboard', {
data: data
});
});
然后,dashboard.jade文件使用这些数据来做很酷的事情。
if #{data.isNew} === true {do cool stuff}
我还编写了一些JavaScript,将这些数据直接用于dashboard.jade文件本身。但是,我更愿意在一个名为scripts.js的文件中编写和使用这个JavaScript,该文件是从Jade文件中引用的。
script(src='scripts.js')
我无法访问这些数据 - 我尝试了多种语法来尝试让它工作但是很难用。
我的问题是,我如何使用已经res.rendered()的JSON到从该渲染视图引用的JS文件中的视图?
答案 0 :(得分:0)
您需要在dashboard.jade中声明一个变量,然后使用interpolation将数据输出为字符串:
script.
var myData = #{JSON.stringify(data)};
Jade引擎会将其输出为有效字符串,然后供该页面上加载的任何脚本使用。