2012-04-09 12 views
6

Esta pregunta está relacionada con el uso de Jade templates con Express.js.¿Qué significa `body! = Body` en la plantilla de Jade?

sé que cuando escribo layout.jade que contiene:

!!! 
html 
    body != body 
     header 
      h1 My header 

Cuando llamo res.render('index') entonces mi plantilla real se hace a principios del body.

Mi pregunta es esta: ¿qué significa != body y cómo utiliza Jade/Express para determinar la ubicación de mi plantilla dentro del diseño? Sé que si cambio != body dentro de otro elemento, en su lugar se muestra la vista real. ¿Alguien sabe dónde está documentada esta característica? !

+1

desea algunas aclaraciones sobre éste a su vez. Estado en mi mente – Hacknightly

Respuesta

7

cito, del Código documentation/guide:

de Jade amortiguada por = se escapó por defecto para la seguridad, sin embargo a la salida sin escape valores que se pueden utilizar regresar =:

p = aVarContainingMoreHTML

!

Al utilizar res.render('index') los contenidos prestados de index.jade (en yo su caso) se pasará como una variable local a su archivo de diseño (layout.jade). La variable local está disponible como cuerpo. Sin embargo, si simplemente generamos la variable local del cuerpo, sería escapado (los caracteres especiales serán codificados). Por lo tanto, al usar! =, El contenido del cuerpo se dará como resultado sin guardar.

Salida: http://expressjs.com/guide.html#view-rendering

+0

¡Impresionante! Simplemente la respuesta que estaba buscando, pero no era muy obvio de los documentos. – jsalonen

Cuestiones relacionadas