cari

Rumah  >  Soal Jawab  >  teks badan

Panjangkan blok induk daripada templat terbenam

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 scriptsstyles 内的 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.

P粉033429162P粉033429162345 hari yang lalu538

membalas semua(1)saya akan balas

  • P粉333395496

    P粉3333954962023-12-21 11:48:45

    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延迟的Twig扩展boleh didapatidi sini

    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

    LanjutanContoh pada github.

    Terima kasih kepada Eugene Leonovich kerana membuat sambungan ini

    balas
    0
  • Batalbalas