Estoy tratando de obtener JavaScript para renderizar en mi página usando Jade (http://jade-lang.com/)
Mi proyecto está en NodeJS con Express, todo funciona correctamente hasta que quiero escribir un JavaScript en línea en la cabeza. Incluso tomando los ejemplos de los documentos de Jade, no puedo hacer que funcione, ¿qué me estoy perdiendo?
Plantilla de jade
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
HTML procesado resultante en el navegador
<!DOCTYPE html>
<html lang="en">
<head>
<title>"Test"</title>
<script type="text/javascript">
<if>(10 == 10) {<alert working></alert></if>}
</script>
</head>
<body>
</body>
</html>
Algo definitivamente una señorita aquí alguna idea?
.
después de la(type='text/javascript')
!!! 5
está en desuso, debe usardoctype html
Respuestas:
simplemente use una etiqueta 'script' con un punto después.
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
fuente
<script>
lugar de<script type="text/javascript">
.type="text/javascript"
es el valor predeterminado para eltype
campo en las<script>
etiquetas. No necesitas configurarlo..
anexo. Entonces,script.
seguido de su bloque sangrado de JS.El
:javascript
filtro se eliminó en la versión 7.0La documentación dice que debe usar una
script
etiqueta ahora, seguida de un.
carácter y sin espacios anteriores.Ejemplo:
será compilado a
fuente
Use la etiqueta de script con el tipo especificado, simplemente inclúyala antes del punto:
Esto se compilará para:
fuente
script.
estaría bienNo use solo la etiqueta de script.
Solución con
|
:O con un
.
:fuente
.
. De lo contrario, tendría que escribir|
en cada línea.TERCERA VERSIÓN DE MI RESPUESTA:
Aquí hay un ejemplo de varias líneas de Javascript en línea Jade. No creo que puedas escribirlo sin usar a
-
. Este es un ejemplo de mensaje flash que uso de forma parcial. ¡Espero que esto ayude!¿Es el código que intenta obtener para compilar el código en su pregunta?
Si es así, no necesita dos cosas: primero, no necesita declarar que es Javascript / a script, simplemente puede comenzar a codificar después de escribir
-
; segundo, después de escribir-if
no necesita escribir el{
o}
ninguno. Eso es lo que hace que Jade sea muy dulce.-------------- RESPUESTA ORIGINAL ABAJO ---------------
Intenta anteponer
if
con-
:También hay toneladas de ejemplos de Jade en:
https://github.com/visionmedia/jade/blob/master/examples/
fuente
Para contenido multilínea, jade normalmente usa un "|", sin embargo:
Dicho esto, no puedo reproducir el problema que tienes. Cuando pego ese código en una plantilla de jade, produce el resultado correcto y me muestra una alerta al cargar la página.
fuente
Usa el
:javascript
filtro. Esto generará una etiqueta de script y escapará del contenido del script como CDATA:fuente
script.
funciona bien y es legal!!! 5
fuente