transmettant des données entre les modèles
dans le système de modèles de Go, il peut être nécessaire de transmettre des données entre plusieurs modèles, en particulier lorsque vous incluez un modèle dans un autre. La question se pose: "Comment puis-je transmettre des données comme arguments à un modèle inclus et y accéder dans ce modèle?"
pour y parvenir, vous pouvez utiliser une fonction personnalisée qui fusionne les arguments en une seule valeur de tranche. En enregistrant cette fonction, il peut être utilisé dans l'invocation du modèle. Le code suivant montre comment cela se fait:
package main
import (
"fmt"
"html/template"
)
func main() {
t, err := template.New("t").Funcs(template.FuncMap{
"args": func(vs ...interface{}) []interface{} { return vs },
}).Parse("{{ template \"image_row\" args . 5 }}")
if err != nil {
fmt.Println(err)
return
}
err = t.Execute(template.Must(template.ParseFiles("index.html", "image_row.html")), nil)
if err != nil {
fmt.Println(err)
return
}
}
// index.html
{{ template "image_row" . | 5 }}
// image_row.html
{{ define "image_row" }}
To stuff here {{index . 0}} {{index . 1}}
{{ end }}
Dans le modèle Image_Row, les arguments sont accessibles à l'aide de la fonction d'index intégrée. Par exemple, {{index. 0}} accéderait au premier argument (index 0) passé du modèle index.html, dans ce cas, le numéro 5.
Cette solution fournit un moyen polyvalent de passer et d'accès aux données entre plusieurs modèles, permettant une fonctionnalité personnalisée et une réutilisation efficace de code.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3