本文主要介绍range
1.{{range .Items}}<div>{{ . }}</div>{{else}}<div><strong>no rows</strong></div>{{end}}
遍历元素,如果元素为空执行eles
2.{{if .Items}} ... {{else}} ... {{end}}
如果数组为空则执行else
如果对你有帮助点个心心吧
上代码
package main
import (
"html/template"
"log"
"os"
)
type Str struct {
Name string
Int int
}
func main() {
const tpl = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{.Title}}</title>
</head>
<body>
{{if .Items}}
{{range .Items}}<div>{{ . }}</div>{{else}}<div><strong>no rows</strong></div>{{end}}
{{else}}
<p>list为空</p>
{{end}}
</body>
</html>`
check := func(err error) {
if err != nil {
log.Fatal(err)
}
}
t, err := template.New("webpage").Parse(tpl)
check(err)
data := struct {
Title string
Items []Str
}{
Title: "My page",
Items: []Str{
{Name: "元素1name"},
{Name: "元素2name"},
},
}
err = t.Execute(os.Stdout, data)
check(err)
emptyItems := struct {
Title string
Items []string
}{
Title: "My white page",
Items: []string{},
}
err = t.Execute(os.Stdout, emptyItems)
check(err)
}
网友评论