6

この質問は、Express.jsでのJadeテンプレートの使用に関連しています。

私が書くとき、layout.jadeそれは以下を含むことを知っています:

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

呼び出すとres.render('index')、実際のテンプレートがの先頭にレンダリングされますbody

私の質問はこれです:!= bodyJade / Expressはそれをどのように使用して、レイアウト内のテンプレートの配置を決定しますか?!= body別の要素内で変更すると、代わりに実際のビューがそこでレンダリングされることを知っています。この機能がどこに文書化されているか知っている人はいますか?

4

1 に答える 1

7

Jadeのドキュメント/ガイドから引用します:

= でバッファリングされたコードは、セキュリティのためにデフォルトでエスケープされますが、エスケープされていない戻り値を出力するには、!= を使用できます。

p!= aVarContainingMoreHTML

(あなたの場合)res.render('index')のレンダリングされたコンテンツを使用すると、ローカル変数としてレイアウトファイル( )に渡されます。ローカル変数はbodyとして利用できます。ただし、bodyローカル変数を単純に出力すると、エスケープされます (特殊文字がエンコードされます)。したがって、!= を使用すると、body の内容がエスケープされずに出力されます。index.jadelayout.jade

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

于 2012-04-09T15:17:14.427 に答える