2017-06-19 4 views
1

私はヒスイファイルにmixinを使用しています。要件は2つのdivを持つことです。私はそれをレンダリングするだけで、単一のdivを作成するが、私はコンテンツをレンダリングするために2つのミックスインを使用している場合、私はエラーを取得する場合:「未定義のjade_mixins.selectedImageカード機能ではありません」JADE/PUG:2つのミックスインを使用できません

ここヒスイのコードは次のとおりです。

.container 
     .allThumbs 
      h2 All 
      .row 
      mixin allImage-card(photo) 
      .col-lg-4.col-md-4.col-sm-4.col-xs-6 
       .imgThumb 
       img.thumb(src=photo.URL, alt="") 

     for photo in _allPhotos 
      +allImage-card(photo) 

     .allThumbs 
      h2 Selected 
      .row 
      mixin selectedImage-card(photo) 
      .col-lg-4.col-md-4.col-sm-4.col-xs-6 
       .imgThumb 
       img.thumb(src=photo.URL, alt="") 

     for photo in _selected 
      +selectedImage-card(photo) 
+0

あなたは、インデントの外にこのようなものをミックスインのコードを置く必要があります。 –

答えて

0

あなたのインデントはエラーです。次のエラーでコンパイラ結果に自分のコードを置く:

> 24|    mixin selectedImage-card(photo) 
--------------------^ 
    25|    .col-lg-4.col-md-4.col-sm-4.col-xs-6 
    26|    .imgThumb 
    27|     img.thumb(src=photo.URL, alt="") 

Mixin selectedImage-card declared without body 

はミックスインを宣言した後、追加の先頭のスペースを与え、それが動作します。

理想的には、ファイルの先頭にmixinsを定義し、後でin commentsというように参照する必要があります。

0

インデントの外側にミックスインコードを挿入します。

例:

mixin allImage-card(photo) 
    .example 
     !{photo.name} 

mixin selectedImage-card(photo) 
    .test 
     !{photo.name} 


.container 
    -var _allPhotos = [{'name':'john'}, {'name': 'fred'}] 
    -var _selected = [{'name':'luka'}, {'name': 'lisa'}] 

    for photo in _allPhotos 
     +allImage-card(photo) 

    .allThumbs 
     h2 Selected 
     .row 
    for photo in _selected 
     +selectedImage-card(photo) 
関連する問題