9

私はJadeを使用しています(Expressなし、静的HTMLテンプレート用のみ)-パーシャルを作成できると理解しました。つまり、スコープは問題ではないようですが、そうではないようで、この使用法への参照は見つかりません。 -場合。

master.jade

!!! 5
html
  block vars
  - var slug= 'home'
  head
    block pagetitle
      title Static HTML
    link(rel='stylesheet', href='css/styles.css')
  body(class= slug)
    .wrapper
      include includes/header

include / header.jade

.header 
  ul
    li(class= slug)

#{slug}ファイル内に「スラッグが定義されていません」というエラーを含む構文バリアントを試しincludes/header.jadeましたが、これを行うことは可能ですか?

編集:したがって、以下のコメントでDave Weldonによって与えられた答えは、変数はmaster.jadeに含まれている場合に使用可能ですが、私のビルドコマンドは、インクルードを含むすべてのjadeファイルを独自にコンパイルしました。その時点で、変数はもちろんそうではありません。定義されています。

4

1 に答える 1

16

あなたは次のようなミックスインでこれを達成することができます:

master.jade

include includes/header

!!!
html
  block vars
  - var slug= 'home'
  head
    block pagetitle
      title Static HTML
    link(rel='stylesheet', href='css/styles.css')
  body(class= slug)
    .wrapper
      mixin header(slug)

include / header.jade

mixin header(klass)
  .header
    ul
      li(class= klass)

コンパイル時:

<!DOCTYPE html>
<html>
  <head>
    <title>Static HTML</title>
    <link rel="stylesheet" href="css/styles.css">
  </head>
  <body class="home">
    <div class="wrapper">
      <div class="header">
        <ul>
          <li class="home"></li>
        </ul>
      </div>
    </div>
  </body>
</html>
于 2013-02-23T00:52:25.183 に答える