GoFrame 模板引擎使用的模板标签语法类似于标准库 html/template 包,支持常见的模板标签和控制结构。以下是一些常见的模板标签:

1. 输出变量值:

使用 {{ .变量名 }} 语法来输出变量的值。
<p>Name: {{ .Name }}</p>

2. 条件判断:

使用 {{ if .条件 }} ... {{ else }} ... {{ end }} 语法进行条件判断。
{{ if .IsAdult }}
    <p>Adult</p>
{{ else }}
    <p>Not Adult</p>
{{ end }}

3. 循环迭代:

使用 {{ range .切片或映射 }} ... {{ end }} 语法进行循环迭代。
<ul>
{{ range .Items }}
    <li>{{ . }}</li>
{{ end }}
</ul>

4. 模板函数调用:

使用 {{ 函数名 .参数 }} 语法调用模板函数。
<p>Formatted Time: {{ dateFormat .CreateTime "2006-01-02 15:04:05" }}</p>

5. 模板嵌套:

使用 {{ template "TemplateName" .参数 }} 语法进行模板嵌套。
{{ define "subtemplate" }}
    <p>Subtemplate Content</p>
{{ end }}

{{ template "subtemplate" . }}

6. 注释:

使用 {{/* 注释内容 */}} 进行模板注释。
{{/* This is a comment */}}

7. with 结构:

使用 {{ with .变量 }} ... {{ end }} 语法创建一个新的作用域。
{{ with .User }}
    <p>Name: {{ .Name }}</p>
{{ end }}

8. 模板变量定义:

使用 {{ $变量名 := .某表达式 }} 语法定义一个模板变量。
{{ $sum := add .Num1 .Num2 }}
<p>Sum: {{ $sum }}</p>

示例:

以下是一个包含上述模板标签的示例:
<html>
<head>
    <title>{{ .Title }}</title>
</head>
<body>
    <h1>Hello, {{ .User.Name }}!</h1>

    {{ if .User.IsAdult }}
        <p>Adult</p>
    {{ else }}
        <p>Not Adult</p>
    {{ end }}

    <ul>
    {{ range .User.Interests }}
        <li>{{ . }}</li>
    {{ end }}
    </ul>

    <p>Formatted Time: {{ dateFormat .User.CreateTime "2006-01-02 15:04:05" }}</p>

    {{ define "subtemplate" }}
        <p>Subtemplate Content</p>
    {{ end }}

    {{ template "subtemplate" . }}

    {{ with .AnotherUser }}
        <p>Another User: {{ .Name }}</p>
    {{ end }}

    {{ $sum := add .Num1 .Num2 }}
    <p>Sum: {{ $sum }}</p>
</body>
</html>

这是一个包含了常见模板标签的简单示例,实际使用时可以根据项目需求编写更复杂的模板逻辑。在编写模板时,请注意遵循 Go 的模板语法规则。


转载请注明出处:http://www.zyzy.cn/article/detail/7611/GoFrame