Kaedah Memanggil daripada Templat Go
Dalam Go, anda boleh menentukan kaedah untuk jenis tersuai, membolehkan anda mengendalikan jenis tersebut dalam lebih cara tersusun. Apabila bekerja dengan templat HTML, selalunya berguna untuk mengakses kaedah ini dari dalam templat itu sendiri.
Soalan:
Pertimbangkan perkara berikut:
type Person struct { Name string } func (p *Person) Label() string { return "This is " + p.Name }
Bagaimanakah anda menggunakan kaedah Label() dalam HTML templat?
Jawapan:
Untuk memanggil kaedah daripada templat Go, hanya tinggalkan kurungan. Dalam kes ini, templat akan kelihatan seperti:
{{ .Label }}
Ini akan memanggil kaedah Label() dan memasukkan nilai pulangannya ke dalam templat.
Berikut ialah contoh penuh:
package main import ( "html/template" "log" "os" ) type Person string func (p Person) Label() string { return "This is " + string(p) } func main() { tmpl, err := template.New("").Parse(`{{.Label}}`) if err != nil { log.Fatalf("Parse: %v", err) } tmpl.Execute(os.Stdout, Person("Bob")) }
Nota Tambahan:
Menurut dokumentasi Go, sebarang kaedah yang mengembalikan satu nilai daripada mana-mana jenis atau dua nilai, dengan yang kedua ialah ralat jenis, boleh dipanggil daripada templat.
Atas ialah kandungan terperinci Bagaimana untuk memanggil Kaedah Go daripada Templat HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!