Maison > développement back-end > Golang > le corps du texte

Comment gérer le rendu conditionnel dans les modèles Go HTML avec Else If ?

Mary-Kate Olsen
Libérer: 2024-11-13 08:03:02
original
970 Les gens l'ont consulté

How to Handle Conditional Rendering in Go HTML Templates with Else If?

Gestion du rendu conditionnel dans les modèles HTML Go

Lors du rendu des modèles HTML dans Go, il est souvent nécessaire d'afficher le contenu différemment en fonction de conditions spécifiques. Une approche courante consiste à utiliser des constructions if/elseif/else imbriquées. Cependant, dans les cas comportant un grand nombre de conditions, cela peut conduire à un code encombré.

Considérez la structure Go suivante :

const (
    paragraph_hypothesis = 1<<iota
    paragraph_attachment = 1<<iota
    paragraph_menu       = 1<<iota
)

type Paragraph struct {
    Type int // paragraph_hypothesis or paragraph_attachment or paragraph_menu
}
Copier après la connexion

Vous souhaitez afficher les paragraphes d'une manière qui dépend de leur type. Bien qu'il soit possible d'utiliser des instructions if imbriquées comme celle-ci :

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else}}{{if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}{{end}}
{{end}}
Copier après la connexion

cette approche devient lourde avec plus de types, ce qui entraîne à la fois du code Go encombré (avec des fonctions comme IsSomething) et du code modèle (avec {{end} imbriqué }).

Heureusement, il existe une solution plus propre dans les modèles Go : la construction else if. En utilisant cela, vous pouvez simplifier le modèle ci-dessus comme suit :

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}
{{end}}
Copier après la connexion

En utilisant else if, vous pouvez éliminer le besoin de plusieurs instructions if imbriquées, rendant le code de votre modèle plus concis et facile à suivre.

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