我有一个我将处理的字符串列表,为了简洁起见,我将它们作为跨度写在这里。
我想要一些html进入div,所以,
<div class="something">
<span>something1</span>
<span>something2</span>
<span>something3</span>
...
</div>
以及其他一些外部(取决于某些条件)
<span>something-else1</span>
<span>something-else2</span>
<span>something-else3</span>
...
因此条件来自列表中的某些内容。有没有什么方法可以让我在宏调用者处停止控制,这样我就可以再次调用相同的宏,以便将下一个跨度添加到同一个地方?
类似
{% macro render_inside_div %}
<div class="something">
{{ caller() }} <-- I want to render multiple spans in within the same div
</div>
{% endmacro %}
编辑:
是的,当然这会起作用,而且(有点)我是如何让它继续工作的。但我一直在寻找一种“清洁”和干燥的解决方案。所以基本上我只是迭代列表一次,它的工作方式是这样的:
{% for row in my_list %}
{% if row.condition_for_div %}
{% call render_in_div %} {# Look before to see the macro I've written above #}
{{ do_something(row.data) }}
{% endcall %}
{% else %}
{{ do_something(row.data) }}
{% endif %}
{% endfor %}
所以在这个render_in_div
中我想多次将控制权交给caller()块,所以控件(对于那个“上下文”)会保留在那里直到我说出去(在某种程度上像一个发生器?)