Créer des variables globales et les modifier à plusieurs emplacements dans le html/template de Go
Dans le package html/template de Go, définir une variable dans son la portée l’isole effectivement à cette région spécifique. Dans l'exemple fourni, la variable $currentUserId était destinée à stocker une valeur qui persisterait dans tout le modèle, mais sa portée est limitée à la condition if.
Modification des variables du modèle
Go 1.11 a introduit la possibilité de modifier les variables du modèle. L'utilisation de := définit une variable, tandis que = attribue une nouvelle valeur. Les variables peuvent être rendues accessibles globalement si elles sont définies en dehors de la condition if et que leur valeur est modifiée à l'intérieur de celle-ci.
{{$currentUserId := 0}} {{if .UserData}} {{$currentUserId = .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} [No User Data] {{end}} [<a href="#ask_question">outside {{$currentUserId}}</a>]
Cela garantit que les modifications apportées dans le bloc {{if}} sont reflétées après la fin du bloc. .
Approches alternatives
Conclusion
Bien que le package de modèles de Go excelle dans la simplicité, il présente des limites pour une logique complexe. Cependant, en utilisant des fonctions d'affectation et personnalisées, vous pouvez manipuler efficacement les valeurs à plusieurs emplacements de vos modèles.
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!