2012-04-09 10 views
6

この質問はJade templatesExpress.jsを使用することに関連しています。Jadeテンプレートの `body!= body`はどういう意味ですか?

は私がlayout.jadeを書くとき含まれていることを知っている:

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

私は私の実際のテンプレートがbodyの先頭にレンダリングされ、その後res.render('index')を呼び出し

私の質問は!= bodyとは何ですか?また、Jade/Expressがレイアウト内で自分のテンプレートの配置を決定するために使用する方法は何ですか?他の要素の中で!= bodyを変更すると、代わりに実際のビューがレンダリングされることがわかります。誰でもこの機能が文書化されていることを知っていますか?

+1

が同様にこのいずれかにいくつかの明確化をしたいと思います。私の心にいました。 – Hacknightly

答えて

7

私はジェイドのdocumentation/guide:

=によってバッファコードしかし、あなたが使用することができ、出力エスケープされていないの戻り値に、セキュリティのため、デフォルトでエスケープされた=から、引用:!!

P = aVarContainingMoreHTML

ヨーヨーにおいて(index.jaderes.render('index')レンダリングされたコンテンツを使用してあなたのレイアウトファイル(layout.jade)にローカル変数として渡されます。ローカル変数は本体として利用可能です。しかし、単にの本文ローカル変数を出力すると、がエスケープされて(特殊文字がエンコードされる)になります。したがって、!=を使用すると、ボディの内容はエスケープされずにに出力されます。

チェックアウト:http://expressjs.com/guide.html#view-rendering

+0

恐ろしい!ちょうど答えは私が探していたが、ドキュメントから非常に明白ではなかった。 – jsalonen

関連する問題