2012-04-09 5 views
6

Этот вопрос связан с использованием Jade templates с Express.js.Что такое «тело! = Тело» в шаблоне Джейд?

Я знаю, что когда я пишу layout.jade, который содержит:

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

Когда я называю res.render('index') тогда мой фактический шаблон оказана начало body.

Мой вопрос: что означает != body означает, и как Jade/Express используют это, чтобы определить размещение моего шаблона внутри макета? Я знаю, что если я изменю != body внутри другого элемента, тогда вместо него будет отображаться фактическое представление. Кто-нибудь знает, где эта функция документирована? !

+1

Хотел некоторые разъяснения по этому одному, а также. Был у меня в голове. – Hacknightly

ответ

7

цитирую из documentation/guide:

кодекса Джейд буферизуется = экранируются по умолчанию для безопасности, однако для вывода Unescaped возвращаемых значений можно использовать =:

р = aVarContainingMoreHTML

!

при использовании res.render('index') визуализированных содержимого index.jade (в йо ur case) будет передан в качестве локальной переменной в ваш файл макета (layout.jade). Локальная переменная доступна как корпус. Однако, если мы просто выведем локальную переменную , это будет escaped (специальные символы будут закодированы). Таким образом, используя! =, Содержимое тела будет выведено unescaped.

Отъезд: http://expressjs.com/guide.html#view-rendering

+0

Удивительный! Просто ответ, который я смотрел, но не очень ясен из документов. – jsalonen

Смежные вопросы