我想在不同的页面中包含一个小部件,并使在此子模板中定义的相关脚本与其他脚本一起在页面末尾自动发生,而无需执行多个包含。
我尝试使用 block
在包含的子模板中,并在 中定义的块中添加一些脚本base.html.twig 所以这些脚本会在页面的末尾加载。
在 base.html.twig 我有
<html><body>
<div>{% block content %}{% endblock %}</div>
<aside>{% block aside %}{% endblock %}</aside>
...
{% block javascripts %}
<script src="..."></script>
<script src="..."></script>
...
{% endblock %}
{% block widgetInlineScript %}{% endblock %}
</body></html>
我有一个模板 profile.html.twig 扩展 base.html.twig 看起来如此
{% extends '::base.html.twig' %}
{% block content %}
...
{% endblock %}
{% block aside %}{% include 'ApplicationRcBundle:include:promo/adSpace_topRight.html.twig' %}{% endblock %}
在 包含/widget.html.twig 我无法使用
{% block javascripts %}{{ parent() }} ...
因为它本身不扩展任何东西,所以使用 parent()
失败。相反,我使用了一个特定的块。{% block widgetInlineScript %}
<script type="text/javascript" id="widgetInlineScript" >
...
</script>
{% endblock %}
Twig 很好地编译模板,但在 DOM 中的小部件之后渲染脚本而不是渲染它来代替
{% block widgetInlineScript %}
在页面的末尾。那么是否可以使用
block
在包含的子模板中?谢谢
最佳答案
我今天回答了类似的问题:
Append content to block from multiple subtemplates
基本上我使用“水平重用”技术创建了块:
{% use "blocks.html" with sidebar as base_sidebar %}
您可以在此处查看文档:
http://twig.sensiolabs.org/doc/tags/use.html
关于symfony - Twig - 将内联脚本从包含的子模板冒泡到 javascripts block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17817916/