TWIG如何实现后期绑定
如何在TWIG中实现(或使用,如果支持的话)一种后期绑定TWIG如何实现后期绑定,twig,late-binding,Twig,Late Binding,如何在TWIG中实现(或使用,如果支持的话)一种后期绑定 如何通过同一实例在几个渲染之间传输变量 以下是详细描述的近距离情况: 假设我有一个全局布局模板, 我有一些小部件,它们被称为模板中间的部分(可能很多次-让用户在用户列表中画“化身绘制小部件”)。 假设这些小部件的功能需要在布局中实现一些javascript代码: <header> <script type="text/javascript" src="widget_avatar.js"> </he
<header>
<script type="text/javascript" src="widget_avatar.js">
</header>
因此,可以调用许多小部件,其中一些小部件可能会将所需的javascript添加到javascript数组中,该数组应插入布局标头中
细枝继承在这里不起作用,因为小部件应该是独立的,并且易于在不同的模板中重用
但所有模板、小部件和布局都使用相同的细枝实例
我需要数组脚本在后期绑定的布局头中使用
一般来说,在开始输出之前进行所有处理是常见的做法。另外,您是否阅读了有关“扩展”和“块”的文档?在小部件实现的情况下,“之前处理”不起作用,因为小部件应该是一种“独立”的模块,我可以一次或多次调用任何模板。不幸的是,对于本机twig,这是不可能实现的(既不能在渲染后存储变量,也不能在以后将其用作“后期绑定”),因此我必须在ZendFramework Zend_Layout::getMvcInstance()->getView()->headScript()周围制作一个twig包装器,并且必须对其余模板使用Zend Layout+twig:(但是如果其中一个“独立”呢模块导致异常?或者您希望根据这些模块的结果使用不同的布局?您将无法处理此问题…但是,Symfony针对此类行为,您可能希望查看文档中的“嵌入控制器”:
<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>
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' %}