弱弱的问一下,EJS模板中,js如何获取后端传来的数据??
发布于 6 年前 作者 hsh075623201 30617 次浏览 最后一次编辑是 4 年前 来自 问答

例如: 后端:res.render(“demo”,{“params”:params}) EJS模板的js部分,如何获取这个params呢??

27 回复

params 就是json数据呀 你可以自己拼 var params = {title: ‘Cleaning Supplies’, supplies: [‘mop’, ‘broom’, ‘duster’]}; 不过一般都是自己去后台处理完之后,后台返回的json对象

@zaojiao 我的需求是 EJS模板中 JS 的部分 如何获取 后台传过来的params???在后台我的params已获取,但还是感谢你的回答。

这个直接使用变量就OK了,不需要特殊处理啊…<% code block %>或<%= exp%>等等…

最终生成的时候 render里边的参数 一项不就是 要传入模板的json对象嘛 后台到前端 一般就ajax请求返回吧 可能我没太理解你的意思。。

@zaojiao 先把萝卜埋到坑里再把这块地交给你的

我描述下场景: 首先,render进来一串json, 然后,需要利用这串json进行图表展示, 那么就需要在JS中进行数据绑定之类的。难道都写在<%%>中或者只能改方案(JS中异步请求)???

我想能否render进来的参数 直接在EJS中的js部分获取,然后进行数据绑定,进行图表展示。 @zaojiao @DevinXian @luoyjx @ArronYR 感谢解答!

@hsh075623201 图表的话你考虑下用异步的呗,我之前用highchart用的异步请求,jquery的getJSON

@hsh075623201 可以去看看 co-ejs

@luoyjx 其实只是想问问有没有方法,我现在也是异步取得。

@nswbmw 恩 好的 谢谢!

可以啊,render其实就是一个模板替换成html的过程,这个过程中的数据处理和前台没有任何关系,所以写进前台js部分,完全没问题

@DevinXian 那请问如何写呢??

假设 render(“demo”,{“name”:“test”})

EJS:我知道<%=name%>可以展示

但是:EJS <script></script> 中如何获取这个name值呢??

<script> var name = <%=name%> </script>
这样写不可以吗?

@jx-zhou 好像不行 。。。。

@hsh075623201 不可能不行,只要是内嵌的肯定行啊

@hsh075623201 不行的话,是怎么个不行法,报错吗?

不知道这是不是你要的: 后端node可以这样写:

app.post('/xxx',function(req,res){
    res.json({params:params})
});

前端获取js这样写:

$.ajax({
	type: 'POST',
	url:'/xxx'
	}).done(function(results){
	console.log(results); //=>params
})

<script> var name = ‘<%=name%>’ </script>

@jx-zhou 已解决 少了引号

@hsh075623201 有没有试过for循环,我使用for循环遇到了个奇怪的问题

<script> 如果外部的js想得到后台值 window.name =‘<%=name%>’; </script>

作者你好,我也遇到了同样的问题,能否指点一下

回到顶部