6

我想在一个通用容器宏或模板中呈现许多宏。使用伪代码:

宏1

宏2

宏3

容器

在模板中:

"render macro1 inside of Container" e.g. {{ macro1 with Container }}

我不想每次都通过渲染Container然后里面的宏,我只需要指定,当这个宏,用这个另一个宏括起来

我认为“呼叫”(http://jinja.pocoo.org/docs/templates/#macros)是我正在寻找的,但我现在不太明白。任何输入,以及如果不清楚,我该如何澄清这一点。

4

2 回答 2

6

这对我有用:

{% macro _enclosure() %}
    <div id="topenclosure">hello I'm on top</div>
        {{ caller() }}
    <div id="bottomenclosure">hello I'm on the bottom</div>
{% endmacro %}

{% macro account_user_profile_macro(i) %}
    {% call _enclosure() %}
        {{i.__dict__}}
    {% endcall %} 
{% endmacro %}
于 2013-04-05T16:26:29.007 回答
0

文档

在某些情况下,将宏传递给另一个宏会很有用。为此,您可以使用特殊调用块。以下示例显示了一个利用调用功能的宏以及如何使用它:

{% macro render_dialog(title, class='dialog') -%}
    <div class="{{ class }}">
        <h2>{{ title }}</h2>
        <div class="contents">
            {{ caller() }}
        </div>
    </div>
{%- endmacro %}

{% call render_dialog('Hello World') %}
    This is a simple dialog rendered by using a macro and
    a call block.
{% endcall %}
于 2021-12-17T07:37:47.243 回答