我正在将 ejs-locals 用于 Express 3.x (https://github.com/RandomEtc/ejs-locals)
如何从具有动态数据的模板插入脚本标记?
在我的layout.ejs中我有
<%- block.scripts %>
在我的页面模板 login.ejs 中,我想用一些动态数据替换它:
<% block('scripts', "<script> var app = window.app || {}; app.err = <%- JSON.stringify(err) %>, app.q = <%- JSON.stringify(q) %>; </script>") -%>
我收到错误:
500 SyntaxError: Unexpected token %
-- 我假设是因为我做不到 <%= JSON.stringigy(err) %>
在这里。
最佳答案
我通过将脚本插入移动到layout.ejs解决了这个问题,因为它总是相同的。
<% include script %>
</body>
否则,您必须终止字符串:
//this works but is rather cumbersome to do on every page template.
<% block('script', '<script>' +
'app.req.err = '+ JSON.stringify(err) +";\n" +
'app.req.q = '+ JSON.stringify(q) +";\n" +
'</script>') %>
关于javascript - 在express.js 上使用 ejs (ejs-locals) 插入带有数据的脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542056/