2012-04-09 11 views
6

Diese Frage bezieht sich auf die Verwendung von Jade templates mit Express.js.Was "Körper! = Körper" in Jade Vorlage bedeutet?

Ich weiß, dass, wenn ich layout.jade schreiben, das enthält:

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

Wenn ich rufe res.render('index') dann meine eigentliche Vorlage zu Beginn der body gemacht wird.

Meine Frage ist das: Was bedeutet != body und wie Jade/Express verwenden, um die Platzierung für meine Vorlage im Layout zu bestimmen? Ich weiß, dass wenn ich != body innerhalb eines anderen Elements ändere, dann wird die tatsächliche Ansicht dort stattdessen gerendert. Weiß jemand, wo diese Funktion dokumentiert ist? !

+1

eine Klarstellung auch auf diesen einen gefallen würde. In meinen Gedanken. – Hacknightly

Antwort

7

ich zitiere aus Jade documentation/guide:

-Code durch = gepuffert standardmäßig aus Sicherheitsgründen entkommen ist jedoch die Ausgabe unescaped Werte zurückgeben Sie verwenden =:

p = aVarContainingMoreHTML

!

Wenn yo Verwendung res.render('index') die gerenderten Inhalt index.jade (in Ihr Fall) wird als lokale Variable an Ihre Layout-Datei übergeben (layout.jade). Die lokale Variable ist als body verfügbar. Wenn wir jedoch einfach die lokale Variable body ausgeben, wäre es Escape (Sonderzeichen werden codiert). Durch Verwendung von! = Wird der Inhalt des Körpers ausgegeben unescaped.

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

+0

Super! Genau die Antwort, die ich suchte, aber nicht sehr offensichtlich aus der Dokumentation. – jsalonen