Melalui Data Antara Templat
Dalam sistem templat Go, mungkin perlu untuk menghantar data antara berbilang templat, terutamanya apabila menyertakan satu templat dalam yang lain. Timbul persoalan, "Bagaimanakah saya boleh menghantar data sebagai argumen kepada templat yang disertakan dan mengaksesnya dalam templat itu?"
Untuk mencapai ini, anda boleh menggunakan fungsi tersuai yang menggabungkan argumen ke dalam satu nilai hirisan. Dengan mendaftarkan fungsi ini, ia boleh digunakan dalam permohonan templat. Kod berikut menunjukkan cara ini dilakukan:
<code class="go">package main import ( "fmt" "html/template" ) func main() { t, err := template.New("t").Funcs(template.FuncMap{ "args": func(vs ...interface{}) []interface{} { return vs }, }).Parse("{{ template \"image_row\" args . 5 }}") if err != nil { fmt.Println(err) return } err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil) if err != nil { fmt.Println(err) return } } // index.html {{ template "image_row" . | 5 }} // image_row.html {{ define "image_row" }} To stuff here {{index . 0}} {{index . 1}} {{ end }}</code>
Dalam templat image_row, hujah boleh diakses menggunakan fungsi indeks terbina dalam. Contohnya, {{index. 0}} akan mengakses argumen pertama (indeks 0) yang diluluskan daripada templat index.html, dalam kes ini nombor 5.
Penyelesaian ini menyediakan cara yang serba boleh untuk menghantar dan mengakses data antara berbilang templat, membolehkan tersuai kefungsian dan penggunaan semula kod yang cekap.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar data sebagai hujah kepada templat yang disertakan dalam sistem templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!