Saya mahu menyuntik nilai baharu ke dalam gaya dan blok skrip dalam reka letak, tetapi dari blok terbenam.
Sudah tentu, ia menimbulkan ralat 在块之外调用“parent”是禁止的.
.
Adakah terdapat sebarang penyelesaian?
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 %}
(Saya tidak boleh/tidak akan menggunakan scripts
和 styles
内的 list.html.twig
块。它们是数据表模板的一部分,在 list.html.twig
.).
Malangnya saya tidak boleh menggunakan use
kerana fungsi ini tidak menyokong sifat dinamik, hanya rentetan.
Daripada dokumentasi:
Memandangkan pernyataan penggunaan dihuraikan secara bebas daripada konteks yang dihantar kepada templat, rujukan templat tidak boleh menjadi ungkapan.
Seperti yang dinyatakan dalam ulasan, termasuk/benam tidak boleh menukar blok dalam penyertanya. Walau bagaimanapun, terdapat sambungan yang tersedia yang boleh menyelesaikan masalah anda.
Ini
Pada asasnya, nod melambatkan pelaksanaan blok tersebut. Dengan cara ini anda boleh membuat pembolehubah untuk memegang semua pautan javascript dan mengeluarkannya. Ini boleh dilihat dalam延迟的Twig扩展
boleh didapatidi siniLanjutanContoh pada github.
Terima kasih kepada Eugene Leonovich kerana membuat sambungan ini