CNode

express中render到jade里的数据,能否在js中直接使用?

问答
CchenkaiC4发布于12 年前最后回复12 年前12 回复12358 浏览0 收藏

我想把数据render到jade里,正常的使用没有问题。 但是,我现在有一个这样的需求,我想在JS中直接使用render上来的数据,例如下面带埋render了hotels数据到对应的jade中, 我在对应的JS文件中,想直接输出hotels,console.log(hotels)。但是我始终没有找到方法~欢迎大家提供方法~谢谢~

res.render('plans/edit', {
	hotels : hotels,
            })
查看回复

回复 (12)

C
chenkaiC4#1·12 年前

在线求助~

C
chenkaiC4#2·12 年前

顶,没人回复~

R
ravenwang#3·12 年前

render时解析jade生成html这一过程是在服务端执行的 ,js是在客户端执行的,想办法把你提供的数据传递给页面上的js就行了

P
pockry#4·12 年前

用res.json(),直接跳过jade提供数据接口

C
chenkaiC4#6·12 年前
引用 pockry用res.json(),直接跳过jade提供数据接口

@pockry 谢谢你的回复~但是这样的话,我有一些想要发送给jade的数据就没法传递过去了

P
pockry#7·12 年前
引用 chenkaiC4@pockry 谢谢你的回复~但是这样的话,我有一些想要发送给jade的数据就没法传递过去了

@chenkaiC4 用两个route啊,jade渲染基本页面,然后前端js用getJSON读取数据接口,虽然多了一个HTTP请求,但实现了页面的分步加载也挺好的。

F
fish#8·12 年前

这个地方有个转换过程,首先 jade 被render之后,输出的是一个html(通常是html页面, 不排除输出其他变态玩意)。 然后html页面被浏览器解析,js代码被执行起来。

所以首先你要关心的是, 怎么让jade模板渲染之后得到一个静态页面,这个静态页面中,有js运行所需要的数据对象 然后再关心这个静态页面,怎么正确的运行。 最后附上提示代码:

res.render('plans/edit', {
    hotels : JSON.stringify(hotels),
});
V
vicanso#9·12 年前

参考代码: res.render('plans/edit', { hotels : hotels, })

plans/edit.jade script. window.hotels = !{JSON.stringify(hotels)};

C
chenkaiC4#11·12 年前
参与回复
登录后即可参与回复。登录