Maison > développement back-end > Golang > Comment répéter des lignes HTML plusieurs fois à l'aide de modèles Golang ?

Comment répéter des lignes HTML plusieurs fois à l'aide de modèles Golang ?

DDD
Libérer: 2024-12-16 07:14:14
original
512 Les gens l'ont consulté

How to Repeat HTML Lines Multiple Times Using Golang Templates?

Itération HTML dans les modèles Golang

Dans Golang, lorsque vous parcourez une liste d'éléments dans un modèle, vous pouvez utiliser le {{range }} action. Cependant, il nécessite un tableau ou une tranche pour parcourir. Pour répéter une ligne HTML plusieurs fois, nous pouvons créer une tranche vide et la remplir soit avec une valeur nulle, soit avec des valeurs spécifiques.

Utilisation d'une tranche à valeur nulle

Nous peut créer une tranche vide make([]struct{}, n) pour représenter le nombre d'itérations dont nous avons besoin. Ensuite, dans le modèle, nous utilisons la syntaxe {{range}}${} pour parcourir la tranche. Par exemple :

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))
Copier après la connexion

Utilisation d'une tranche remplie

Alternativement, nous pouvons remplir la tranche avec des valeurs spécifiques. Cette approche nous permet de ne pas utiliser l'index ($idx) dans le code HTML. Par exemple :

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)
Copier après la connexion

Utilisation d'une tranche à valeur nulle et d'une fonction personnalisée

Une autre option consiste à créer une fonction personnalisée qui ajoute 1 à l'index de tranche et renvoie le résultat. Cela vous permet d'utiliser les indices de tranche tout en incrémentant les nombres de 1. Par exemple :

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))
Copier après la connexion

Ces approches offrent des moyens flexibles de répéter une ligne HTML plusieurs fois en fonction de vos besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal