gpt4 book ai didi

go - 在Go中将多个结构传递给ExecuteTemplate-最佳实践

转载 作者:行者123 更新时间:2023-12-01 22:05:56 27 4
gpt4 key购买 nike

目前,我正在将多个结构传递给ExecuteTemplate,但是是否有更有效,更简洁或不同的方式来执行此操作?


type user struct {
Username string
Password string
}

type meta struct {
Title string
Content string
}

func index(w http.ResponseWriter, req *http.Request) {
u := getUser(w, req)
m := meta{
Title: "Homepage",
Content: "Homepage meta content",
}
users := []user{u}
metas := []meta{m}
data := struct {
User []user
Meta []meta
}{
users,
metas,
}
err := tpl.ExecuteTemplate(w, "index.html", data)
if err != nil {
log.Fatalln(err)
}
}

HTML
{{range .Meta}}
{{.Title}}
{{.Content}}
{{end}}

最佳答案

使用 map 可以更简洁地实现相同的目的:

err := tpl.ExecuteTemplate(w, "index.html", map[string]interface{}{"User":[]user{u},
"Meta":[]meta{m}})

关于go - 在Go中将多个结构传递给ExecuteTemplate-最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com