Übergabe von Daten zwischen Vorlagen
Im Vorlagensystem von Go kann es erforderlich sein, Daten zwischen mehreren Vorlagen zu übergeben, insbesondere wenn eine Vorlage darin enthalten ist ein anderer. Es stellt sich die Frage: „Wie kann ich Daten als Argumente an eine enthaltene Vorlage übergeben und innerhalb dieser Vorlage darauf zugreifen?“
Um dies zu erreichen, können Sie eine benutzerdefinierte Funktion verwenden, die die Argumente in einem einzigen Slice-Wert zusammenführt. Durch die Registrierung dieser Funktion kann sie innerhalb des Vorlagenaufrufs verwendet werden. Der folgende Code demonstriert, wie das geht:
<code class="go">package main import ( "fmt" "html/template" ) func main() { t, err := template.New("t").Funcs(template.FuncMap{ "args": func(vs ...interface{}) []interface{} { return vs }, }).Parse("{{ template \"image_row\" args . 5 }}") if err != nil { fmt.Println(err) return } err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil) if err != nil { fmt.Println(err) return } } // index.html {{ template "image_row" . | 5 }} // image_row.html {{ define "image_row" }} To stuff here {{index . 0}} {{index . 1}} {{ end }}</code>
Innerhalb der image_row-Vorlage kann über die integrierte Indexfunktion auf die Argumente zugegriffen werden. Beispiel: {{index . 0}} würde auf das erste Argument (Index 0) zugreifen, das von der Vorlage index.html übergeben wurde, in diesem Fall die Zahl 5.
Diese Lösung bietet eine vielseitige Möglichkeit, Daten zwischen mehreren Vorlagen zu übergeben und darauf zuzugreifen und ermöglicht so benutzerdefinierte Funktionalität und effiziente Code-Wiederverwendung.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten als Argumente an eine im Vorlagensystem von Go enthaltene Vorlage übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!