Maison > développement back-end > Golang > Comment appeler des méthodes Go à partir de modèles HTML ?

Comment appeler des méthodes Go à partir de modèles HTML ?

Barbara Streisand
Libérer: 2024-12-25 05:59:12
original
706 Les gens l'ont consulté

How to Call Go Methods from Within HTML Templates?

Accès aux méthodes Go à partir de modèles HTML

Dans Go, les modèles sont un moyen polyvalent de générer du contenu HTML de manière dynamique. Cependant, appeler des méthodes à partir de modèles peut parfois poser un défi.

Problème :

Considérez la structure Go suivante :

type Person struct {
  Name string
}

func (p *Person) Label() string {
  return "This is " + p.Name
}
Copier après la connexion

Comment peut-on cette méthode est-elle accessible à partir d'un modèle HTML ? Dans le modèle, vous souhaitez utiliser une syntaxe similaire à :

{{ .Label() }}
Copier après la connexion

Solution :

Pour appeler une méthode depuis un modèle Go, omettez simplement les parenthèses :

{{ .Label }}
Copier après la connexion

Le code Go suivant démontre this :

package main

import (
    "html/template"
    "log"
    "os"
)

type Person string

func (p Person) Label() string {
    return "This is " + string(p)
}

func main() {
    tmpl, err := template.New("").Parse(`{{.Label}}`)
    if err != nil {
        log.Fatalf("Parse: %v", err)
    }
    tmpl.Execute(os.Stdout, Person("Bob"))
}
Copier après la connexion

Sortie :

This is Bob
Copier après la connexion

La documentation précise que vous pouvez appeler n'importe quelle méthode qui renvoie une valeur ou deux valeurs, à condition que la deuxième valeur soit de type erreur. Dans ce dernier cas, l'erreur est renvoyée si elle est non nulle et l'exécution du modèle est interrompue.

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