2012-04-09 9 views
6

To pytanie jest związane z używaniem Jade templates z Express.js.Co to jest "body! = Body" w szablonie Jade?

wiem, że kiedy piszę layout.jade że zawiera:

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

Kiedy zadzwonić res.render('index') wtedy mój rzeczywisty szablon jest renderowane na początku body.

Moje pytanie brzmi: co znaczy != body i jak Jade/Express wykorzystuje to do określenia miejsca umieszczenia mojego szablonu w układzie? Wiem, że jeśli zmienię != body wewnątrz innego elementu, to zamiast tego zostanie wyświetlony rzeczywisty widok. Czy ktoś wie, gdzie ta funkcja jest udokumentowana? !

+1

Chciałbym trochę wyjaśnień na ten jeden, jak również. Byłem w mojej głowie. – Hacknightly

Odpowiedz

7

cytuję z Jade documentation/guide:

Kodeksu buforowane = oznacza uciekł domyślnie dla bezpieczeństwa, jednak do wyjścia Niecytowany zwracają wartości można użyć =:

p = aVarContainingMoreHTML

!

Przy użyciu res.render('index') świadczonych zawartość index.jade (w yo ur case) zostanie przekazany jako zmienna lokalna do pliku układu (layout.jade). Zmienna lokalna jest dostępna jako body. Jeśli jednak po prostu wyprowadzimy zmienną lokalną body, będzie to zliczone (znaki specjalne będą kodowane). W ten sposób za pomocą! = Zawartość body zostanie wypuszczona bez zmiany znaczenia:.

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

+0

Awesome! Po prostu odpowiedź, której szukałem, ale nie była zbyt oczywista z dokumentów. – jsalonen