2016-12-05 82 views
1

我想創建一些嵌套宏。一個部分,並在那裏我想要動態調用任何組件的宏。 (在這種情況下,我想打電話給該組件是articleNunjucks:在宏中傳遞參數作爲參數

這裏是我的部分宏:

<!-- section.nunjucks --> 
    {% macro section(config) %} 
    <section class="site__section section"> 
     {% for item in config %} 
     {{ item.macro(item.settings) }} 
     {% endfor %} 
    </section> 
    {% endmacro %} 

組件宏:

<!-- article.nunjucks --> 
    {% macro article(settings) %} 
    <article class="article {{ settings.classes }}"> 
     <h1 class="article__title">Hello World</h1> 
     <p class="article__body">Lorem ipsum dolor.</p> 
    </article> 
    {% endmacro %} 

而且我想在這裏把它叫做:

{{ section([{'macro': article, 'settings': {'classes': 'article--large'}}]) }} 

我得到這個位的語法錯誤:'settings': {'classes': 'article--large'}

當我調用我的settings宏時,如何作爲參數傳入settings.classes

回答

2

正如我剛剛發現的那樣,空間在Nunjucks中很重要。所以寫作

{{ section([{ 'macro': article, 'settings': { 'classes': 'article--large' } }]) }} 

而是實際運行時沒有任何語法錯誤。