javascript - 如何在node.js ejs模板中将变量从后端传递到前端

标签 javascript node.js ejs

我这样渲染我的页面:

response.render('index', {
    data: list // the `list` is an array variable
});

在首页,我想将数据存储为globe变量,所以我尝试了:

<script>
   window.app = <%= data %>
</script>

但结果是:

window.app = [object Object],[object Object],[object Object]

那么我怎样才能以正确的方式做到这一点呢?

最佳答案

您可以将数据字符串化为 JSON,它是 javascript 的子集,并将被解析为准确的数据结构。也可以使用 <%- expression %>以确保您的 javascript 不会被转义。

<script>
   window.app = <%- JSON.stringify(data) %>
</script>

请注意,这不包括函数,它会抛出循环数据结构。但是像 [{ a : { b : 3 }}] 这样的东西应该工作正常。日期也被转换为字符串。

关于javascript - 如何在node.js ejs模板中将变量从后端传递到前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23733748/

相关文章:

javascript - 从同一个 node.js 子进程运行多个命令

node.js - RxJS:在 NodeJS 中处理 groupBy 和 Observable.fromEvents

node.js - npm 在树莓派上发布 CERT_NOT_YET_VALID

node.js - 如何在 View 中创建指向 Express 路线的 href 链接?

javascript - 如何在有序列表中显示字符串的各个部分

javascript - Node.js ejs - 如何在 ejs 表达式中使用变量?

node.js - ejs如何发送一个变量来 Sequelize ?

javascript - jquery before() after() 无法正常工作

JavaScript/JQuery 函数不返回任何内容

javascript - 如何修复返回编码的 Youtube API 结果标题