HTML in Golang-Vorlagen iterieren
Wenn Sie in Golang über eine Liste von Elementen in einer Vorlage iterieren, können Sie den {{Bereich verwenden }} Aktion. Allerdings ist zum Durchlaufen ein Array oder Slice erforderlich. Um eine HTML-Zeile mehrmals zu wiederholen, können wir ein leeres Slice erstellen und es entweder mit einem Nullwert oder bestimmten Werten füllen.
Nullwert-Slice verwenden
Wir kann ein leeres Slice make([]struct{}, n) erstellen, um die Anzahl der benötigten Iterationen darzustellen. Dann verwenden wir in der Vorlage die Syntax {{range}}${}, um über das Slice zu iterieren. Zum Beispiel:
tmpl := template.Must(template.New("").Parse(` <ul> {{range $idx, $e := .}} <li><a href="/?p={{idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
Verwendung eines gefüllten Slice
Alternativ können wir den Slice mit bestimmten Werten füllen. Dieser Ansatz ermöglicht es uns, die Verwendung des Index ($idx) im HTML-Code zu überspringen. Zum Beispiel:
tmpl := template.Must(template.New("").Parse(` <ul> {{range .}} <li><a href="/?p={{.}}">{{.}}</a></li> {{end}} </ul>`)) values := make([]int, 5) for i := range values { values[i] = i + 1 } tmpl.Execute(w, values)
Nullwert-Slice und benutzerdefinierte Funktion verwenden
Eine andere Option besteht darin, eine benutzerdefinierte Funktion zu erstellen, die 1 zum Slice-Index hinzufügt und zurückgibt Ergebnis. Dadurch können Sie die Slice-Indizes verwenden und gleichzeitig die Zahlen um 1 erhöhen. Zum Beispiel:
tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": func(i int) int { return i + 1 }, }).Parse(` <ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?p={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
Diese Ansätze bieten flexible Möglichkeiten, eine HTML-Zeile basierend auf Ihren spezifischen Anforderungen mehrmals zu wiederholen.
Das obige ist der detaillierte Inhalt vonWie kann ich HTML-Zeilen mithilfe von Golang-Vorlagen mehrmals wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!