模板标签
模板引擎默认使用了 {{
和 }}
作为左右闭合标签,开发者可通过gview.SetDelimiters
方法设置自定义的模板闭合标签。
...
需要注意:在
gf
模板引擎中,当模板中展示的指定变量不存在时,将会显示为空(标准库模板引擎会展示<no value>
)。
if … else … end
{{if pipeline}}...{{end}}
...
{{if .condition}}
...
{{else if .condition2}}
...
{{else}}
...
{{end}}
range … end
{{range pipeline}} {{.}} {{end}}
...
{{range $index, $elem := .SliceContent}}
{{range $key, $value := $elem}}
{{$key}}:{{$value}}
{{end}}
{{end}}
with … end
{{with pipeline}}...{{end}}
...
{{with .Field.NestField.SubField}}
{{.Var}}
{{end}}
define
define
可以用来自定义模板内容块(给一段模板内容定义一个模板名称),可用于模块定义和模板嵌套(使用在template
标签中)。
...
define
标签需要结合template
标签一起使用,并且支持跨模板使用(在同一模板目录/子目录下有效,原理是使用的ParseFiles
方法解析模板文件)。
template
{{template "模板名称" pipeline}}
...
template
标签需要结合define
标签一起使用,并且支持跨模板使用(在同一模板目录/子目录下有效,原理是使用的ParseFiles
方法解析模板文件)。
include
该标签为gf
框架模板引擎新增标签
{{include "模板文件名(需要带完整文件名后缀)" pipeline}}
...
与template
标签的区别是:include
仅支持文件路径,不支持模板名称;而tempalte
标签仅支持模板名称,不支持文件路径。
注释
允许多行文本注释,不允许嵌套。
{{/*
comment content
support new line
*/}}