2017-05-11 25 views
1

pug/jadeを初めて使用しています。私は "layout.pug"、 "home.pug"と "mixins.pug"という3つのpugテンプレートファイルを持っています。Pugファイルのコンパイルがmixins.pugのエラーを返します。

html 
    include mixins 
    body 
    include home 

コードこのhome.pugファイルに:

body 
    div.main 
    +popup('Hello', 'Hello World') 

パグファイル 'mixins.pug' のミックスインが含まれている layout.pugは、次のコードが含まれています。 mixin popup()をこのファイルに追加しました。 このファイル内のコード:

mixin popup(title, description) 
div.pop-up-body 
    h2 #{title} 
    p #{description} 

しかし、私はgrunt pugコマンドを使用して、私のパグファイルをコンパイルするとき、私はエラー 「pug_mixins.popupは関数ではありません」てしまいました。

理由を知っていれば、親切に私を助けてください。

+0

あなたがする必要はありませんように思えますミックスイン宣言の中で '#{}'を使うと、 'h2 ti tle' – mJehanno

+0

こんにちは、私はこれを試しました。しかし、変数titleの値ではなく、ブラウザ上に "title"という単語だけを表示します。 –

答えて

4

私はこの質問に答えました。

エラーの理由: 私はlayout.pugファイル内mixins.pugを含めていました。しかし mixin popup(title, description)home.pugファイルから呼び出されます。 したがって、mixinはhome.pugファイルでは利用できません。 (home.puglayout.pugファイルに含まれていますので、mixins.puglayout.pugファイルにのみ含まれています)。

ソリューション: 私はlayout.pugファイルからコードinclude mixinsを削除し、home.pugファイルに を追加しました。

コード: layout.pugファイル

html 
    body 
     include home 

home.pugファイル

include mixins 
div.main 
    +popup('Hello', 'Hello World') 

mixins.pugファイル

mixin popup(title, description) 
    div.pop-up-body 
     h2 #{title} 
     p #{description} 
関連する問題