Maison > développement back-end > Golang > Comment effectuer des calculs dans les modèles Go HTML ?

Comment effectuer des calculs dans les modèles Go HTML ?

DDD
Libérer: 2024-11-14 22:13:02
original
679 Les gens l'ont consulté

How to Perform Calculations in Go HTML Templates?

Comment effectuer des calculs dans les modèles HTML ?

Problème :

Dans les modèles Go HTML, tenter d'effectuer des calculs comme {{ $length -1 }} dans un modèle ne fonctionne pas. Comment pouvons-nous réaliser cette fonctionnalité ?

Réponse :

Malheureusement, les calculs ne peuvent pas être effectués directement dans les modèles HTML. Cela est dû à la philosophie fondamentale de conception consistant à séparer la logique complexe des modèles.

Solutions :

Considérez plutôt ces approches alternatives :

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

La méthode préférée consiste à calculer la valeur souhaitée dans votre code Go et à la transmettre en tant que paramètre de modèle.

func main() {
    length := len(myMap)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1})
}
Copier après la connexion

2. Enregistrez des fonctions personnalisées :

Vous pouvez également enregistrer des fonctions personnalisées et les appeler dans vos modèles. Ces fonctions peuvent effectuer des calculs et renvoyer des valeurs.

func RegisterCalcFunc(t *template.Template) {
    t.Funcs["calcIndex"] = func(length int) int { return length - 1 }
}

func main() {
    RegisterCalcFunc(t)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)})
}
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!

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