Im Kontext der Webentwicklung kann es nützlich sein, darüber zu iterieren HTML-Inhalte eine bestimmte Anzahl von Malen. Zum Beispiel beim Erstellen von Paginierungslinks oder beim Generieren dynamischer Listen. Go bietet mehrere Möglichkeiten, dies über HTML-Vorlagen zu erreichen.
Go-Vorlagen bieten die {{range}}-Aktion, Dies ermöglicht die Iteration über ein Slice, Array oder eine Karte. Um dies für sich wiederholende HTML-Inhalte zu verwenden, müssen Sie eine Sammlung von Elementen bereitstellen, die die gewünschten Wiederholungen darstellen.
Ein Ansatz besteht darin, ein leeres Slice zu übergeben. Go erstellt zur Laufzeit ein Slice ohne Elemente. In unserem Beispiel können wir ein Nullwert-Segment von Strukturen übergeben: make([]struct{}, n).
Betrachten wir zum Beispiel den folgenden HTML-Code:
<ul> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> . . . <li><a href="/?page=n">n</a></li> </ul>
Wir können die Aktion {{range}} verwenden, um über einen Nullwert-Slice zu iterieren, die Links mit aufsteigenden Werten zu füllen und den HTML-Code zu generieren dynamisch.
Der Go-Vorlagencode könnte so aussehen:
const templ = ` <ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{idx}}</a></li> {{end}} </ul>`
Eine andere Option ist das explizite Füllen ein Slice mit den gewünschten Werten. Dies kann nützlich sein, wenn Sie mehr Kontrolle über den generierten Inhalt benötigen. Um beispielsweise ungerade Zahlen zu generieren, die mit 2 beginnen, können Sie ein gefülltes Slice erstellen:
values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 }
Und die Vorlage ändern, um die Slice-Elemente direkt zu verwenden:
const templ = ` <ul> {{range .}} <li><a href="/?page={{.}}">{{}}</a></li> {{end}} </ul>`
Wenn Sie nur steigende Zahlen ab 1 benötigen, können Sie dies tun Registrieren Sie eine benutzerdefinierte Funktion, um 1 zum Index des Nullwert-Slices hinzuzufügen:
func Add(i int) int { return i + 1 } tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": Add, }).Parse(templ))
Ändern Sie dann die Vorlage, um die benutzerdefinierte Funktion aufzurufen:
const templ = ` <ul> {{range $idx, $e := .}}{{$idx := Add $idx}} <li><a href="/?page={{$idx}}">{{idx}}</a></li> {{end}} </ul>`
Durch die Verwendung dieser Techniken Sie können sich wiederholende HTML-Inhalte in Ihren Go-Webanwendungen effizient generieren.
Das obige ist der detaillierte Inhalt vonWie wiederhole ich eine HTML-Zeile N-mal in Go-Webanwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!