我想在不同的页面中包含一个小部件,并且在此子模板中定义的相关脚本会在页面末尾自动发生,而不必执行其他几个包含。
我尝试在包含的子模板中使用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 %}
在 include / widget.html.twig 中,我无法使用{% block javascripts %}{{ parent() }} ...
,因为它不会扩展任何内容,因此使用parent()
失败。相反,我使用了一个特定的块。
{% block widgetInlineScript %}
<script type="text/javascript" id="widgetInlineScript" >
...
</script>
{% endblock %}
Twig很好地编译模板,但是在窗口小部件之后的DOM中呈现脚本,而不是在页面末尾将其呈现为{% block widgetInlineScript %}
。
那么可以在包含的子模板中使用block
吗?
感谢
答案 0 :(得分:2)
我今天回答了类似的问题:
Append content to block from multiple subtemplates
基本上我使用“水平重用”技术创建了块:
{% use "blocks.html" with sidebar as base_sidebar %}
您可以在此处查看文档: