Wie führt man Berechnungen in Go-HTML-Vorlagen durch?

DDD
Freigeben: 2024-11-14 22:13:02
Original
578 Leute haben es durchsucht

How to Perform Calculations in Go HTML Templates?

Wie führe ich Berechnungen in HTML-Vorlagen durch?

Problem:

In Go-HTML-Vorlagen wird versucht, Berechnungen wie durchzuführen {{ $length -1 }} innerhalb einer Vorlage funktioniert nicht. Wie können wir diese Funktionalität erreichen?

Antwort:

Berechnungen können leider nicht direkt innerhalb von HTML-Vorlagen durchgeführt werden. Dies liegt an der grundlegenden Designphilosophie, komplexe Logik von Vorlagen zu trennen.

Lösungen:

Berücksichtigen Sie stattdessen diese alternativen Ansätze:

1. Berechnete Ergebnisse als Parameter übergeben:

Die bevorzugte Methode besteht darin, den gewünschten Wert in Ihrem Go-Code zu berechnen und ihn als Vorlagenparameter zu übergeben.

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})
}
Nach dem Login kopieren

2. Benutzerdefinierte Funktionen registrieren:

Sie können auch benutzerdefinierte Funktionen registrieren und diese in Ihren Vorlagen aufrufen. Diese Funktionen können Berechnungen durchführen und Werte zurückgeben.

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)})
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie führt man Berechnungen in Go-HTML-Vorlagen durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage