英文:
Create "x" amount of html elements in template based on how many elements I have in DB
问题
我需要创建一个 HTML 页面,在我的 .html 文件中显示数据库中所有的“论坛”。
示例:
<body>
{{with index . 0}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}</td>
{{end}}
{{with index . 1}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}
{{end}}
</body>
func index(w http.ResponseWriter, r *http.Request) {
forums := GetForumsFromDB() // 从数据库返回一个 Forum 类型的切片
tpl.ExecuteTemplate(w, "index.html", forums)
}
type Forum struct {
Id int
Name string
Descr string
}
但在这种情况下,当编写 .html 文件时,我需要已经知道数据库中有多少个论坛。我应该如何处理这个问题?我应该将 HTML 与切片一起传递给模板吗?我应该使用 Forum 的一个方法来返回每个论坛的 HTML 吗?
英文:
I need to create an html page that display all the "forums" present in the database in my .html file.
Example:
<body>
{{with index . 0}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}</td>
{{end}}
{{with index . 1}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}
{{end}}
</body>
func index(w http.ResponseWriter, r *http.Request) {
forums := GetForumsFromDB() // return a slice of type Forum from the db
tpl.ExecuteTemplate(w, "index.html", forums)
}
type Forum struct {
Id int
Name string
Descr string
}
But in this case I need to already know how many forums are there in the db when writing the .html file. How should I approach this? Should I pass the html into the template together with my slice? Should I use a method of Forum that return the html for every forum?
答案1
得分: 1
使用range
:
{{range .}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}
{{end}}
使用range
函数可以遍历一个集合,并在模板中重复执行指定的代码块。在上述示例中,.
表示当前迭代的元素,可以通过.
来访问元素的属性。在这个例子中,我们使用range
来遍历一个集合,并为每个元素生成一个包含链接和描述的HTML代码块。
英文:
Use range
:
{{range .}}
<a href="/sID={{.Id}}">{{.Name}}<br></a>{{.Descr}}
{{end}}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论