jade模板的script中怎么取到后台传来的json变量
发布于 11 年前 作者 yakczh 18120 次浏览 最后一次编辑是 8 年前

后台

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回来。

我按你的方式写会报错呀

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

回到顶部