Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

模板标签

模板引擎默认使用了 {{}} 作为左右闭合标签,开发者可通过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
*/}}