如何在 TWIG 中实现(或在支持时使用)一种后期绑定。
如何通过同一实例在几个渲染之间传输变量
这是详细描述的接近情况:
让我们想象一下我有全局布局模板,并且我有一种小部件,它们在模板中间的某个位置被调用(可能很多次 - 比如说用户列表中的头像绘图小部件)。
假设这些小部件的功能需要在布局中实现一些 javascript 代码:
<header>
<script type="text/javascript" src="widget_avatar.js">
</header>
所以,在树枝模板语言中,我想像这样实现:
布局.twig
<header>
{% for script_name in scripts %}
<script type="text/javascript" src="{{ script_name }}"></script>
{% endfor %}
</header>
<body>
{{ Widget('Draw_Avatar') }}
variable below set in the widget coz both widget and layout
uses the same TWIG instance:
{{ after_execution }}
</body>
draw_avatar.twig
Im widget template returning some rendered html
for my functionality i need some javascript inserted
into the "layout.twig" header
adding required javascript to the array of javascripts
{% set scripts = scripts | merge({'widget_avatar':'widget_avatar.js'}) %}
{% set after_execution = 'HELLO' %}
因此,可以调用许多小部件,其中一些可能会将所需的 javascript 添加到应插入布局标题中的 JavaScript 数组中。
树枝继承在这里不起作用,因为小部件应该是独立的并且可以在不同的模板中轻松重用。
但是所有模板、小部件和布局都使用相同的树枝实例。
我需要在布局标题类型的后期绑定中使用数组脚本。
所以在模板渲染过程的最后需要渲染一些代码块,我怎么能“说” TWIG 关于这个?
渲染小部件后,如何将变量从小部件传输到布局模板?