我正在使用ejs-locals表达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) %>
。
答案 0 :(得分:2)
我通过将脚本插入移动到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>') %>