Estoy usando ejs-locals para express 3.x (https://github.com/RandomEtc/ejs-locals)
¿Cómo insertaría una etiqueta de script desde una plantilla con datos dinámicos?
En mi layout.ejs tengo
<%- block.scripts %>
En mi plantilla de página login.ejs quiero reemplazarla con algunos datos dinámicos:
<% block("scripts", "<script> var app = window.app || {}; app.err = <%- JSON.stringify(err) %>, app.q = <%- JSON.stringify(q) %>; </script>") -%>
Me sale un error:
500 SyntaxError: Unexpected token %
- Supongo que no puedo hacer <%= JSON.stringigy(err) %>
aquí.
Respuestas
2 para la respuesta № 1Resolví el problema moviendo la inserción del script a layout.ejs ya que siempre es lo mismo.
<% include script %>
</body>
De lo contrario, debe terminar la cadena:
//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>") %>