Maison > développement back-end > Golang > Comment puis-je répéter du code HTML plusieurs fois dans une application Web Go à l'aide de modèles ?

Comment puis-je répéter du code HTML plusieurs fois dans une application Web Go à l'aide de modèles ?

Barbara Streisand
Libérer: 2024-12-22 11:05:11
original
711 Les gens l'ont consulté

How can I repeat HTML code multiple times in a Go web application using templates?

Répéter du code HTML plusieurs fois dans Go

Dans votre application Web Go, vous devez afficher une ligne HTML spécifique plusieurs fois, en fonction de la valeur de n .

Voici une façon d'aborder cela :

Dans les modèles HTML, l'action {{range}} vous permet d'itérer sur les articles. Cependant, cette action nécessite une tranche, un tableau ou une carte avec laquelle travailler.

Passer une tranche de valeur nulle

Pour répondre à cette exigence, vous pouvez transmettre une tranche vide sans mémoire allouée, telle que make([]struct{}, n).

Modèle Code :

<ul>
{{range $idx, $e := .}}
    <li><a href="/?page={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>
Copier après la connexion

Test du code :

tmpl := template.Must(template.New("").Parse(templ))
n := 5
if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil {
    panic(err)
}
Copier après la connexion

Sortie :

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

Utilisation d'un Slice

Pour personnaliser l'index de départ des liens, vous pouvez remplir la tranche avec des valeurs spécifiques.

Code du modèle :

<ul>
{{range .}}
    <li><a href="/?page={{.}}">{{.}}</a></li>
{{end}}
</ul>
Copier après la connexion

Exemple de test Code :

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

Sortie :

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

Utilisation d'une fonction personnalisée

Enfin , vous pouvez utiliser une fonction personnalisée dans les modèles pour modifier les valeurs d'index comme nécessaire.

Code du modèle :

<ul>
{{range $idx, $e := .}}{{$idx := (Add $idx)}}
    <li><a href="/?page={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>
Copier après la connexion

Fonction personnalisée :

func Add(i int) int {
    return i + 1
}
Copier après la connexion

Sortie :

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

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal