13

我理解这个概念,但我不理解语法。

我将使用他们网站上使用的示例

{% 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 %}

输出会是什么?

子问题(因为我对它的工作原理感到困惑):每个宏是否允许只有 1 个调用者?

4

1 回答 1

13

这是输出:

<div class="dialog">
    <h2>Hello World</h2>
    <div class="contents">

   This is a simple dialog rendered by using a macro and
    a call block.

    </div>
</div>

因此,当我们调用 render_dialog 时,我们将“Hello World”作为标题传递,当它到达caller()时传递call块的内容。

于 2011-02-15T06:58:35.440 回答