gin框架自定义模板标识符和自定义模板函数

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"html/template"
	"net/http"
	"time"
)

func index(c *gin.Context) {
	c.HTML(http.StatusOK, "index/index.tmpl", gin.H{
		"title": "til",
		"d":     time.Date(2021, 8, 16, 0, 0, 0, 0, time.UTC),
	})

}

func formatAsDate(t time.Time) string {
	year, month, day := t.Date()
	return fmt.Sprintf("%d-%d-%d", year, month, day)
}

func main() {
	// 创建一个默认引擎
	r := gin.Default()
	// 自定义标识符,因为默认{{}}这种标识在前端框架中也有使用,会产生冲突
	// 注意:改完标识符之后别忘了把模板里原先的标识符一起改掉
	r.Delims("{[", "]}")

	// 自定义模板方法
	r.SetFuncMap(template.FuncMap{
		"formatAsDate": formatAsDate,
	})
	// 加载当前目录下的所有模板文件,
	// 如果多个目录下有同名的模板,需要在模板文件中命名(最好习惯性的命名,如果没有命名默认以文件名为模板名字)
	r.LoadHTMLGlob("templates/**/*")
	// 配置路由 url 函数
	r.GET("/", index)

	err := r.Run()
	if err != nil {
		fmt.Println("启动服务失败。。。")
	}
}

posted on 2021-08-16 11:14  信奉上帝的小和尚  阅读(745)  评论(0编辑  收藏  举报

导航