Я не понимаю Jinja2 Call Blocks - PullRequest
       6

Я не понимаю Jinja2 Call Blocks

10 голосов
/ 15 февраля 2011

Я понимаю концепцию, но не понимаю синтаксис.

Я собираюсь использовать пример , используемый на их сайте

{% 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 Ответ

12 голосов
/ 15 февраля 2011

Это вывод:

<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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...