Wiederholen von HTML-Code mit Go-Vorlagen
Bei der Webentwicklung mit Go gibt es Fälle, in denen Sie möglicherweise eine bestimmte HTML-Zeile iterieren müssen Anzahl der Male. Lassen Sie uns untersuchen, wie Sie dies mithilfe von Go-Vorlagen erreichen können.
Verwenden der {{range}}-Aktion
Um einen Teil des HTML-Codes innerhalb einer Go-Vorlage zu wiederholen, können wir verwenden die Aktion {{range}}. Für diese Aktion ist jedoch ein iterierbares Objekt wie ein Slice, ein Array oder eine Karte erforderlich.
Übergabe eines Nullwert-Slices
Anstatt eine tatsächliche Datenstruktur zu erstellen können wir einen Nullwert-Slice übergeben, dem im Wesentlichen kein Speicher zugewiesen ist. Dieses Slice fungiert als Platzhalter für die Aktion {{range}}, über die iteriert werden soll. Zum Beispiel:
const templ = `<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`
tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
Ausgabe:
<ul> <li><a href="/?page=0">0</a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> </ul>
Verwendung eines gefüllten Segments
Wenn Sie die Indizes bei beginnen müssen Wenn Sie einen anderen Wert als Null haben, sollten Sie erwägen, das Segment mit den gewünschten Werten zu füllen und dann darüber zu iterieren it.
tmpl := template.Must(template.New("").Parse(templ)) n := 5 values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 } if err := tmpl.Execute(os.Stdout, values); err != nil { panic(err) }
Ausgabe:
<ul> <li><a href="/?page=2">2</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=6">6</a></li> <li><a href="/?page=8">8</a></li> <li><a href="/?page=10">10</a></li> </ul>
Verwendung eines Nullwert-Slice und einer benutzerdefinierten Funktion
Ein alternativer Ansatz besteht darin, a zu registrieren Benutzerdefinierte Funktion, die eine bestimmte Zahl erhöht und das Ergebnis zurückgibt. Dadurch können Sie ein Nullwert-Slice verwenden und die Funktion innerhalb der Vorlage aufrufen, um die gewünschten Zahlen zu erhalten.
func main() { tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": func(i int) int { return i + 1 }, }).Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) } } const templ = `<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`
Ausgabe:
<ul> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=5">5</a></li> </ul>
Das obige ist der detaillierte Inhalt vonWie kann ich HTML-Code mithilfe von Go-Vorlagen eine bestimmte Anzahl von Malen wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!