TWIG如何实现后期绑定

TWIG如何实现后期绑定,twig,late-binding,Twig,Late Binding,如何在TWIG中实现(或使用,如果支持的话)一种后期绑定 如何通过同一实例在几个渲染之间传输变量 以下是详细描述的近距离情况: 假设我有一个全局布局模板, 我有一些小部件,它们被称为模板中间的部分(可能很多次-让用户在用户列表中画“化身绘制小部件”)。 假设这些小部件的功能需要在布局中实现一些javascript代码: <header> <script type="text/javascript" src="widget_avatar.js"> </he

如何在TWIG中实现(或使用,如果支持的话)一种后期绑定

  • 如何通过同一实例在几个渲染之间传输变量

  • 以下是详细描述的近距离情况:

    假设我有一个全局布局模板, 我有一些小部件,它们被称为模板中间的部分(可能很多次-让用户在用户列表中画“化身绘制小部件”)。 假设这些小部件的功能需要在布局中实现一些javascript代码:

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