Как использовать шаблоны в Go Gin для динамического контента

У меня есть простое веб-приложение Go/Gin. Мне нужно поместить некоторый динамический контент в шаблон html.

Например, У меня есть несколько таблиц (число динамическое) с несколькими строками (число динамическое). Мне нужно поместить их в шаблон html. Есть ли способ объединить шаблоны в коде? Я бы предпочел использовать шаблоны, а не создавать таблицы в коде.

Я проверил учебник https://github.com/gin-gonic/gin, но он там не прикрывается.


person kikulikov    schedule 14.06.2016    source источник


Ответы (1)


Вы можете использовать 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")
}

Это хорошее место для чтения https://gohugo.io/templates/go-templates/

person Pie 'Oh' Pah    schedule 14.06.2016
comment
Спасибо! Ресурс действительно полезный. - person kikulikov; 14.06.2016
comment
Другой полезный ресурс — golang.org/pkg/text/template — официальная документация по шаблоны. Это не так хорошо сделано, как то, что опубликовал @pie-oh-pah, но, по крайней мере, ясно, что является частью «официальной» документации, а что специфично для Hugo. - person Gwyneth Llewelyn; 08.06.2020