我想把数据render到jade里,正常的使用没有问题。
但是,我现在有一个这样的需求,我想在JS中直接使用render上来的数据,例如下面带埋render了hotels数据到对应的jade中,
我在对应的JS文件中,想直接输出hotels,console.log(hotels)
。但是我始终没有找到方法~欢迎大家提供方法~谢谢~
res.render('plans/edit', {
hotels : hotels,
})
在线求助~
顶,没人回复~
render时解析jade生成html这一过程是在服务端执行的 ,js是在客户端执行的,想办法把你提供的数据传递给页面上的js就行了
用res.json(),直接跳过jade提供数据接口
@ravenwang 谢谢你的回复~ 不过我不想把某些数据放到html里
@pockry 谢谢你的回复~但是这样的话,我有一些想要发送给jade的数据就没法传递过去了
@chenkaiC4 用两个route啊,jade渲染基本页面,然后前端js用getJSON读取数据接口,虽然多了一个HTTP请求,但实现了页面的分步加载也挺好的。
这个地方有个转换过程,首先 jade 被render之后,输出的是一个html(通常是html页面, 不排除输出其他变态玩意)。 然后html页面被浏览器解析,js代码被执行起来。
所以首先你要关心的是, 怎么让jade模板渲染之后得到一个静态页面,这个静态页面中,有js运行所需要的数据对象
然后再关心这个静态页面,怎么正确的运行。
最后附上提示代码:
res.render('plans/edit', {
hotels : JSON.stringify(hotels),
});
参考代码: res.render(‘plans/edit’, { hotels : hotels, })
plans/edit.jade script. window.hotels = !{JSON.stringify(hotels)};
@pockry 这个想法挺不错的~真是谢谢了~下面同学给的回答也很好~推荐一看~
@fish 谢谢你^_^,不过我的意思是js处理的数据对象不在常规的静态页面了,可以看你楼下的建议,正好是我想要的
@vicanso 非常感谢!我要的就是这个效果~