Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melakukan Pengiraan dalam Templat HTML Go?

Bagaimana untuk Melakukan Pengiraan dalam Templat HTML Go?

DDD
DDDasal
2024-11-14 22:13:02636semak imbas

How to Perform Calculations in Go HTML Templates?

Bagaimana untuk Melakukan Pengiraan Dalam Templat HTML?

Masalah:

Templat HTML Dalam Go, cuba melakukan pengiraan seperti {{ $length -1 }} dalam templat tidak berfungsi. Bagaimanakah kita boleh mencapai fungsi ini?

Jawapan:

Malangnya, pengiraan tidak boleh dilakukan terus dalam templat HTML. Ini disebabkan oleh falsafah reka bentuk asas untuk memisahkan logik kompleks daripada templat.

Penyelesaian:

Sebaliknya, pertimbangkan pendekatan alternatif ini:

1. Lulus Keputusan Dikira sebagai Parameter:

Kaedah pilihan ialah mengira nilai yang diingini dalam kod Go anda dan luluskannya sebagai parameter templat.

func main() {
    length := len(myMap)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1})
}

2. Daftar Fungsi Tersuai:

Anda juga boleh mendaftar fungsi tersuai dan memanggilnya dalam templat anda. Fungsi ini boleh melakukan pengiraan dan mengembalikan nilai.

func RegisterCalcFunc(t *template.Template) {
    t.Funcs["calcIndex"] = func(length int) int { return length - 1 }
}

func main() {
    RegisterCalcFunc(t)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)})
}

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengiraan dalam Templat HTML 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