Go html/template 模板的使用实例详解
从字符串载入模板
我们可以定义模板字符串,然后载入并解析渲染:
template.New(tplNamestring).Parse(tplstring)
//从字符串模板构建 tplStr:=` {{.Name}}{{.Age}} ` //ifparsefailedMustwillrenderapanicerror tpl:=template.Must(template.New("tplName").Parse(tplStr)) tpl.Execute(os.Stdout,map[string]interface{}{Name:"big_cat",Age:29})
从文件载入模板
模板语法
模板文件,建议为每个模板文件显式的定义模板名称:{{define"tplName"}},否则会因模板对象名与模板名不一致,无法解析(条件分支很多,不如按一种标准写法实现),另展示一些基本的模板语法。
- 使用{{define"tplName"}}定义模板名
- 使用{{template"tplName".}}引入其他模板
- 使用.访问当前数据域:比如range里使用.访问的其实是循环项的数据域
- 使用$.访问绝对顶层数据域
views/header.html
{{define"header"}}{{.PageTitle}} {{end}} views/footer.html {{define"footer"}}