jade模板的script中怎么取到后台传来的json变量
后台
res.render('user', {
title: 'Example',
message: '',
data:data,
errors: errors
});
模板
script(src="javascripts/form.js")
script
console.log(data);
firebug提示ReferenceError: data is not defined
https://github.com/visionmedia/jade 上面可以传到页面里面,但怎么在js里面引用变量呢
10 回复
先放到隐藏域中,在取出来不行吗
还要在页面搞个中转站?
和html里面一样。
script
console.log(#{data});
但是如果你的data是个对象的话,在后端先JSON.stringify(data)
吧。然后前端再parse
回来。
我按你的方式写会报错呀
see express-state https://github.com/yahoo/express-state
script. var data = !{JSON.stringify(data)};
script console.log()直接这么输出就会报错,什么原因呢
JSON.stringify(data)把对象序列化,放在隐藏域或者直接放在脚本中,然后parse回来,剩下的就是细节问题了~
在jade的js部分直接声明变量就可以了,例如: var gameId = ‘#{gameId}’; console.log(gameId); 这样gameId就可以在js中直接使用了。。。。
@heroicyang 如果data是一个对象,应该是后台JSON.stringify(data)
,前台使用!{data}
就获取到该对象了,不需要再JSON.parse
啦