Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghantar Data kepada Templat yang Disertakan dalam Go?

Bagaimana untuk Menghantar Data kepada Templat yang Disertakan dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 13:27:03206semak imbas

How to Pass Data to Included Templates in Go?

Mengirimkan Data ke Templat Render dalam Go

Templat In Go, termasuk templat lain ialah proses yang mudah menggunakan {{ template "include- templat-nama" }} sintaks. Walau bagaimanapun, kadangkala ia menjadi perlu untuk menghantar data tambahan kepada templat yang disertakan.

Memperkenalkan Hantaran Parameter Dinamik

Pertimbangkan senario di mana anda ingin menghantar nombor kepada templat , "image_row.html", yang menggunakan nombor ini untuk membina baris secara dinamik. Ini memerlukan menghantar nombor sebagai hujah tambahan kepada seruan templat.

Fungsi Tersuai untuk Menghantar Berbilang Argumen

Memandangkan tiada sokongan terbina dalam untuk menghantar berbilang argumen kepada templat, anda boleh mencipta fungsi tersuai untuk menggabungkan hujah ke dalam satu kepingan. Daftarkan fungsi ini dengan Funcs dan gunakannya dalam permohonan templat:

<code class="go">func args(vs ...interface{}) []interface{} { return vs }
t, err := template.New("t").Funcs(template.FuncMap{"args":args}).Parse...</code>

Penggunaan dalam Seruan Templat

Di dalam templat utama, anda boleh menghantar hujah menggunakan fungsi args:

{{ template "image_row" args . 5 }}

Mengakses Argumen dalam Templat Termasuk

Dalam "image_row.html", anda boleh mengakses argumen menggunakan fungsi indeks terbina dalam:

{{ define "image_row" }}
   To stuff here {{index . 0}} {{index . 1}}
{{ end }}

Pendekatan ini membolehkan anda menghantar data dinamik kepada templat yang diberikan, membolehkan lebih fleksibiliti dalam reka bentuk templat dan pengendalian data.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data kepada Templat yang Disertakan dalam 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