Nunjucks:在宏中将对象作为参数传递
Nunjucks: Passing an object as parameter in macro
我想创建一些嵌套的宏。一个部分,在那里我想动态调用任何组件的宏。 (在这种情况下,我要调用的组件是 article
。)
这是我的部分宏:
<!-- 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
作为参数传入?
我刚刚发现,空格在 Nunjucks 中很重要。所以写
{{ section([{ 'macro': article, 'settings': { 'classes': 'article--large' } }]) }}
相反,实际上 运行 没有任何语法错误。
我想创建一些嵌套的宏。一个部分,在那里我想动态调用任何组件的宏。 (在这种情况下,我要调用的组件是 article
。)
这是我的部分宏:
<!-- 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
作为参数传入?
我刚刚发现,空格在 Nunjucks 中很重要。所以写
{{ section([{ 'macro': article, 'settings': { 'classes': 'article--large' } }]) }}
相反,实际上 运行 没有任何语法错误。