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
Barbara Streisandoriginal
2024-12-22 11:05:11799parcourir

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>

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)
}

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>

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>

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)
}

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>

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>

Fonction personnalisée :

func Add(i int) int {
    return i + 1
}

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>

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!

Déclaration:
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