Mengira Nilai dalam Templat HTML dengan Go
Apabila bekerja dengan templat Go, selalunya perlu melakukan pengiraan dalam templat. Satu tugas biasa ialah mengira indeks item terakhir dalam peta. Walaupun contoh yang diberikan menggunakan {{ $length -1 }} tidak betul, terdapat penyelesaian alternatif.
Penghadan Templat
Adalah penting untuk diingat bahawa templat Go bukan direka untuk logik yang kompleks. Pengiraan templat hendaklah dipastikan mudah dan sebarang operasi yang rumit hendaklah dikendalikan di luar templat.
Melulus Nilai Dikira
Pendekatan pilihan adalah dengan pra-pengiraan nilai dan luluskannya sebagai parameter kepada templat. Ini memastikan pemisahan logik dan pembentangan.
Mendaftarkan Fungsi Tersuai
Pilihan lain ialah mendaftarkan fungsi tersuai yang menerima parameter templat dan melakukan pengiraan. Fungsi ini boleh dipanggil dalam templat, menghantar nilai kepada mereka dan mengembalikan hasil yang dikira.
Contoh
package template import ( "html/template" ) // Register a custom function to calculate the last index. func LastIndex(m map[string]interface{}) int { return len(m) - 1 } func main() { m := map[string]interface{}{"key1": "value1", "key2": "value2"} // Parse a template and register the custom function. tmpl, err := template.New("").Funcs(template.FuncMap{"LastIndex": LastIndex}).Parse("{{ LastIndex . }}") if err != nil { // Handle error. } // Execute the template. if err = tmpl.Execute(m, nil); err != nil { // Handle error } }
Dalam contoh ini, fungsi LastIndex didaftarkan dengan templat. Dalam HTML, fungsi tersuai boleh digunakan seperti ini:
<p>The last index of this map is: {{ LastIndex . }}</p>
Sumber Tambahan
Atas ialah kandungan terperinci Bagaimanakah saya boleh Mengira Nilai dalam Templat HTML Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!