Werte in HTML-Vorlagen mit Go berechnen
Bei der Arbeit mit Go-Vorlagen ist es oft notwendig, Berechnungen innerhalb der Vorlage durchzuführen. Eine häufige Aufgabe ist die Berechnung des Index des letzten Elements in einer Karte. Obwohl das bereitgestellte Beispiel mit {{ $length -1 }} falsch ist, gibt es alternative Lösungen.
Vorlageneinschränkungen
Es ist wichtig zu bedenken, dass dies bei Go-Vorlagen nicht der Fall ist Entwickelt für komplexe Logik. Vorlagenberechnungen sollten einfach gehalten werden und alle komplexen Vorgänge sollten außerhalb der Vorlage durchgeführt werden.
Übergabe berechneter Werte
Der bevorzugte Ansatz besteht darin, die Werte und Werte vorab zu berechnen Übergeben Sie sie als Parameter an die Vorlage. Dies gewährleistet die Trennung von Logik und Darstellung.
Registrieren benutzerdefinierter Funktionen
Eine weitere Möglichkeit besteht darin, benutzerdefinierte Funktionen zu registrieren, die Vorlagenparameter akzeptieren und Berechnungen durchführen. Diese Funktionen können innerhalb der Vorlage aufgerufen werden, ihnen Werte übergeben und berechnete Ergebnisse zurückgeben.
Beispiel
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 } }
In diesem Beispiel wird die LastIndex-Funktion registriert bei die Vorlage. Innerhalb des HTML kann die benutzerdefinierte Funktion wie folgt verwendet werden:
<p>The last index of this map is: {{ LastIndex . }}</p>
Zusätzliche Ressourcen
Das obige ist der detaillierte Inhalt vonWie kann ich mit Go Werte in HTML-Vorlagen berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!