Maison > développement back-end > Golang > Comment calculer des valeurs dans des modèles HTML avec Go ?

Comment calculer des valeurs dans des modèles HTML avec Go ?

Patricia Arquette
Libérer: 2024-11-15 05:37:02
original
600 Les gens l'ont consulté

How Can You Calculate Values in HTML Templates with Go?

Calcul de valeurs dans des modèles HTML avec Go

Lorsque vous travaillez avec des modèles HTML dans Go, vous pouvez rencontrer des situations dans lesquelles vous devez effectuer des calculs dans le modèle lui-même. Cependant, la syntaxe que vous avez fournie, "{{ $length -1 }}", ne fonctionnera pas car les modèles ne sont pas destinés à être utilisés pour une logique complexe.

Pour calculer les valeurs dans un modèle, vous disposez de deux principaux options :

  1. Transmettre les résultats calculés en tant que paramètres :

L'approche préférée et la plus simple consiste à calculer les valeurs en dehors du modèle et à les transmettre en tant que paramètres. Par exemple, si vous avez une carte et que vous souhaitez calculer le dernier index, vous pouvez le faire dans le contrôleur et transmettre le résultat au modèle comme ceci :

func IndexHandler(w http.ResponseWriter, r *http.Request) {
    m := make(map[string]string)
    // ... populate map ...

    lastIdx := len(m) - 1
    data := struct {
        LastIdx int
    }{
        LastIdx: lastIdx,
    }

    t, err := template.ParseFiles("template.html")
    if err != nil {
        // Handle error
    }
    t.Execute(w, data)
}
Copier après la connexion

Dans le modèle, vous pouvez simplement utiliser {{.LastIdx}} pour afficher le dernier index calculé.

  1. Enregistrer la personnalisation Fonctions :

Si vous avez besoin de calculs plus complexes ou si vous souhaitez les effectuer dans le modèle, vous pouvez enregistrer des fonctions personnalisées, puis les appeler à partir du modèle. Pour ce faire, utilisez le type template.FuncMap et enregistrez les fonctions comme ceci :

func init() {
    template.Funcs["subtractOne"] = func(x int) int {
        return x - 1
    }
}
Copier après la connexion

Dans le modèle, vous pouvez ensuite appeler la fonction comme ceci :

{{ $lastIdx := subtractOne (len .) }}
<p>The last index of this map is: {{ $lastIdx }} </p>
Copier après la connexion

Ceci déduisez-en un de la longueur de la carte et stockez le résultat dans la variable $lastIdx.

N'oubliez pas que les modèles ne sont pas des langages de programmation à part entière, et leur objectif principal est de présenter des données. La logique complexe doit être gérée en dehors du modèle ou via des fonctions personnalisées.

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