1、统一使用”{{}}”作为左右标签
2、上下文
- “.” 访问当前位置的上下文
- “$” 引用当前模板根级的上下文
- “$.” 引用模板中根级上下文
3、支持go语言的符号
- 字符串:{{“joker”}}
- 原始字符串:{{
joker
}},不会转义 - 字节类型:{{‘a’}} ,ascll码对应表
- nil类型:{{print nil}},{{nil}}会报错
4、定义变量
- 定义:{{$username := “joker”}}
- 使用:{{$username}}
注意:只能在当前模板中使用
5、pipeline
可以是上下文的变量输出,也可以是函数通过管道传递的返回值。
- {{.name}} 是上下文的变量输出,是一个pipeline
- {{.name | len}} 是函数通过管道传递的返回值,是一个pipeline
6、条件判断
if … else ….
{{if .name}}
xxx
{{else}}
yyy
{{end}}
if嵌套
{{if .A}}
{{if .B}}
xxx
{{end}}
{{end}}
7、循环
- range ```html {{range .Arry}} {{.}} {{end}}
第二种
{{range $i,$v := .Arry}} {{$i}} # 脚标 {{$v}} # 值 {{end}}
range也支持else,当长度为0的时候生效
```html
{{range .Arry}}
{{.}}
{{else}}
没有值
{{end}}
8、with
主要用于重定向的pipeline。
# .artical是一个map类型
{{with .artical}}
{{.id}}
{{.name}}
{{end}}
with也支持else,当长度为0时生效
{{with .artical}}
xxx
{{else}}
没有数据
{{end}}
9、template
作用是引用另外一个模板文件。
{{template "base.html"}}
如果要共享数据,则要传入上下文,如下
{{template "base.html" .}}
10、注释
{{/*注释*/}}