Ich möchte in den Stilen und Skripten Blöcke in meinem Layout neue Werte injizieren, aber aus dem Embed-Block. Natürlich wirft es den Fehler Calling "parent" outside a block is forbidden.
. Gibt es eine Problemumgehung?Verlängert Elternblöcke von Embed-Vorlage
layout.html.twig:
<!DOCTYPE html>
<html>
<head>
{% block style %}
<link rel="stylesheet" href="foo.css">
{% endblock %}
</head>
<body>
{% block content "" %}
{% block scripts %}
<script src="foo.js"></script>
{% endblock %}
</body>
</html>
list.html.twig:
{% extends 'layout.html.twig' %}
{% block content %}
{% embed datatable.html.twig %}
{% block tbody %}
<tr>
<td>my awesome table</td>
</tr>
{% endblock %}
{% endembed %}
{% endblock %}
datatable.html.twig:
<table id="myDatatable">
<tbody>
{% block tbody "" %}
</tbody>
</table>
{% block styles %}
{{ parent() }}
<link rel="stylesheet" href="dataTables.css">
{% endblock %}
{% block scripts %}
{{ parent() }}
<script src="dataTables.js"></script>
{% endblock %}
(Und ich kann/will nicht die Blöcke scripts
und styles
innerhalb der list.html.twig
verwenden. Sie sind Teil der Datentabelle Vorlage, es wird nicht sinnvoll sein, Thema in der list.html.twig
zu definieren.). Und leider kann ich use
nicht verwenden, weil diese Funktion dynamische Eigenschaften, nur Zeichenfolgen nicht unterstützt.
Da auf die Vorlage übergeben unabhängig vom Kontext Verwendung Aussagen aufgelöst werden, kann die Vorlage Referenz kein Ausdruck sein.
includes/Einbettungen können keine Blöcke in der Schablone ändern/verändern, aus dem es von – DarkBee