美文网首页
go html/template 部分功能使用

go html/template 部分功能使用

作者: SailSea | 来源:发表于2019-04-04 19:11 被阅读0次

本文主要介绍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)
}

相关文章