如何在 Go Gin 中使用模板来获取动态内容

cyr*_*llk 7 go go-templates go-gin

我有一个简单的 Go/Gin 网络应用程序。我需要在 html 模板中放入一些动态内容。

例如,我有几个表(数字是动态的),其中有几行(数字是动态的)。我需要将它们放在 html 模板中。有没有办法在代码中组合模板?我更喜欢使用模板而不是在代码中构建表。

我检查了一个教程https://github.com/gin-gonic/gin但它没有在那里介绍。

Pie*_*Pah 6

您可以使用define来定义部分并template混合多个 HTML 部分。

package main

import (
    "html/template"

    "github.com/gin-gonic/gin"
)

var (
    partial1 = `{{define "elm1"}}<div>element1</div>{{end}}`
    partial2 = `{{define "elm2"}}<div>element2</div>{{end}}`
    body     = `{{template "elm1"}}{{template "elm2"}}`
)

func main() {
    // Or use `ParseFiles` to parse tmpl files instead 
    t := template.Must(template.New("elements").Parse(body))

    app := gin.Default()
    app.GET("/", func(c *gin.Context) {
        c.HTML(200, "elements", nil)
    })
    app.Run(":8000")
}
Run Code Online (Sandbox Code Playgroud)

这是阅读https://gohugo.io/templates/go-templates/的好地方