我正在尝试传递一个我传递给路由的对象,例如:
res.render('index', {myObj: myObj});
但是,如果我想要在索引页面中运行JS脚本,我应该如何访问脚本中的这个对象,我只是查看了一下,发现我可以使用ejs将其放入脚本中,例如:
var obj = "<%= myObj %>"
但我不能将脚本放在单独的文件中,因为它依赖于ejs。
将此参数传递给JS的正确方法是什么,以便我也可以将脚本放在单独的脚本文件中?
谢谢
发布于 2018-08-12 19:37:39
正如我在评论中所说的,我总是在HTML文档的顶部定义要传递给客户端JS的值,如下所示,然后在定义之后加载使用这些变量的脚本:
<!doctype html>
<html>
<head>
<script>
/** constants from Express **/
let myObj = <%- JSON.stringify(myObj) %>;
//'-' must be used here not '=' after <% for it to work)
let someString = "<%= someString %>";
</script>
</head>
<body>
...
<script src="scripts/someJS.js"></script>
</body>
</html>
scripts/omeJS.js现在可以使用变量了。
发布于 2018-08-12 19:40:18
如果myObj
是一个对象,则假定它是一个对象,则使用JSON.stringify()
<script>
var myObj = <%- JSON.stringify(myObj) %>;
</script>
https://stackoverflow.com/questions/51808237
复制相似问题