我使用http/template
包中有一个模板。如何迭代模板中的键和值?
示例代码:
template := `
<html>
<body>
<h1>Test Match</h1>
<ul>
{{range .}}
<li> {{.}} </li>
{{end}}
</ul>
</body>
</html>`
dataMap["SOMETHING"] = 124
dataMap["Something else"] = 125
t, _ := template.Parse(template)
t.Execute(w,dataMap)
如何访问模板
中{{range}}
中的密钥
答案 0 :(得分:7)
您可以尝试的一件事是使用range
分配两个变量 - 一个用于键,一个用于值。每this次更改(以及docs),密钥将按可能的顺序返回。以下是使用您的数据的示例:
package main
import (
"html/template"
"os"
)
func main() {
// Here we basically 'unpack' the map into a key and a value
tem := `
<html>
<body>
<h1>Test Match</h1>
<ul>
{{range $k, $v := . }}
<li> {{$k}} : {{$v}} </li>
{{end}}
</ul>
</body>
</html>`
// Create the map and add some data
dataMap := make(map[string]int)
dataMap["something"] = 124
dataMap["Something else"] = 125
// Create the new template, parse and add the map
t := template.New("My Template")
t, _ = t.Parse(tem)
t.Execute(os.Stdout, dataMap)
}
可能有更好的方法来处理它,但这在我的(非常简单的)用例中有效:)