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}) }
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)}) }
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!