Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda boleh menghantar data daripada templat induk kepada templat anak dalam templat Go?

Bagaimanakah anda boleh menghantar data daripada templat induk kepada templat anak dalam templat Go?

DDD
DDDasal
2024-10-26 03:08:27191semak imbas

How can you pass data from a parent template to a child template in Go templates?

Melalui Data Antara Templat

Pertanyaan anda melibatkan pemindahan data dari satu templat ke templat yang lain. Anda mempunyai templat induk (index.html) termasuk templat anak (image_row.html) tetapi ingin menghantar data tambahan kepada anak.

Tingkah laku lalai templat membenarkan hanya data yang ditakrifkan dalam templat induk untuk disampaikan kepada anak. Walau bagaimanapun, anda boleh mencapai matlamat anda dengan menggunakan beberapa teknik:

Menggunakan Fungsi untuk Berbilang Argumen

Satu pendekatan ialah mentakrifkan fungsi yang mengagregatkan hujah anda menjadi satu nilai hirisan. Anda kemudiannya boleh mendaftarkan fungsi ini dan menggunakannya dalam templat.

Sebagai contoh:

import "text/template"

func args(vs ...interface{}) []interface{} { return vs }

t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)

Dalam index.html:

{{ template "image_row" args . 5 }}

Dalam image_row.html:

{{ define "image_row" }}
   Data: {{ index . 0 }} {{ index . 1 }}
{{ end }}

Ini membolehkan anda mengakses hujah anda dalam templat anak menggunakan fungsi indeks:

{{ index . 0 }} -> .
{{ index . 1 }} -> 5

Pendekatan Lain

Sebagai alternatif, anda boleh pertimbangkan:

  • Menggunakan fungsi templat tersuai: Tentukan fungsi tersuai dalam templat induk yang menjana data yang diperlukan untuk kanak-kanak.
  • Melalui struct atau peta: Bina struct atau peta untuk mengagregat data dan hantarkannya ke templat anak.

Memperibadikan mekanisme penghantaran data dengan cara ini memberikan anda kefleksibelan dan kawalan ke atas cara data dikongsi antara templat.

Atas ialah kandungan terperinci Bagaimanakah anda boleh menghantar data daripada templat induk kepada templat anak dalam templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn