我是Node.js的新手并试图解决一些问题。如何将变量从Jade模板文件传递到JS文件?
我的server.js文件中有这行代码
res.render("aws.jade", {data : JSON.stringify({'val' : 'This is a Test'})});
基本上我只想尝试将数据中的值转换为aws.jade模板文件
这是aws.jade
html
head
script(type='text/javascript')
var data = !{data}
link(rel='stylesheet', href='/stylesheets/style.css')
body
title Title
h1 Heading
#div.test
我在Firebug控制台中不断收到此错误:
<var>data = {"val":"This is a Test"}</var>
有人可以解释一下为什么会发生这种情况,以及让我将变量从Jade模板文件传递到JS文件的方法吗?
谢谢
答案 0 :(得分:5)
尝试在脚本后面添加一个.
字符,这告诉Jade你想要一个标签内的文本块。
这是您的更新代码。
html
head
script(type='text/javascript').
var data = !{data}
link(rel='stylesheet', href='/stylesheets/style.css')
body
title Title
h1 Heading
#div.test
编辑 - 将标题设置为data.val
首先,您应该更改您的响应,删除JSON.stringify,这样您就可以返回一个不是字符串值的对象。
res.render("aws.jade", {data : {'val' : 'This is a Test'}});
然后您应该能够使用点表示法直接访问数据对象属性和结构,并将其直接分配给title元素...
title= data.val