gpt4 book ai didi

html - 如何覆盖结构 slice 而不是 slice 结构

转载 作者:IT老高 更新时间:2023-10-28 13:06:04 26 4
gpt4 key购买 nike

在玩过 Go HTML 模板之后,我发现的所有在模板中循环对象的示例都是将 slice 结构传递给模板,有点像这个示例:

type UserList struct {
Id []int
Name []string
}

var templates = template.Must(template.ParseFiles("main.html"))

func rootHandler(w http.ResponseWriter, r *http.Request) {
users := UserList{
Id: []int{0, 1, 2, 3, 4, 5, 6, 7},
Name: []string{"user0", "user1", "user2", "user3", "user4"},
}
templates.ExecuteTemplate(w, "main", &users)
}

“主”模板为:

{{define "main"}}
{{range .Name}}
{{.}}
{{end}}
{{end}}

这可行,但我不明白如果我只在 .Name 属性上进行范围,我应该如何在其对应的名称旁边显示每个 ID。我会发现在显示时将每个用户视为一个对象来分组其属性更合乎逻辑。

所以我的问题:

如果我想将一个结构 slice 传递给模板怎么办? 实现这个工作的语法是什么?我还没有找到或理解如何在官方 html/模板文档中。我想象的东西看起来像这样:

type User struct {
Id int
Name string
}
type UserList []User
var myuserlist UserList = ...

和一个看起来有点像这样的模板:(这里的语法是故意错误的,只是为了理解)

{{define "main"}}
{{for each User from myuserlist as myuser}}
{{myuser.Id}}
{{myuser.Name}}
{{end}}
{{end}}

最佳答案

用途:

{{range .}}
{{.Id}}
{{.Name}}
{{end}}

用于模板。
这是一个例子:http://play.golang.org/p/A4BPJOcfpB
您需要在包概述中阅读有关“点”的更多信息,以了解如何正确使用它。 http://golang.org/pkg/text/template/#pkg-overview (查看管道部分)

关于html - 如何覆盖结构 slice 而不是 slice 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556001/

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