为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改 echo Render 中的 Delim?

如何更改 echo Render 中的 Delim?

Go
繁星淼淼 2023-02-14 17:45:15
我正在尝试更改 html 模板中的分隔符。不幸的是,它在 render 函数中不起作用,在 main 函数中也不起作用。请参阅https://pkg.go.dev/text/template#Template.Delimspackage mainimport (    "html/template"    "io"    "net/http"    "github.com/labstack/echo/v4"    "github.com/labstack/echo/v4/middleware")type Template struct {    templates *template.Template}func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {    t.templates.Delims("[[", "]]")    return t.templates.ExecuteTemplate(w, name, data)}func Hello(c echo.Context) error {    test := `{        "name" : "Ben",        "country" : "Germany",        "city" : "Berlin",        "body":{"test":"test","test2":"test2"}    }`    return c.Render(http.StatusOK, "hello", test)}func main() {    // Echo instance    e := echo.New()    t := &Template{        templates: template.Must(template.ParseGlob("public/views/*.html")),    }    t.templates.Delims("[[", "]]")    e.Renderer = t    e.GET("/hello", Hello)    // Middleware    e.Use(middleware.Logger())    e.Use(middleware.Recover())    // Start server    e.Logger.Fatal(e.Start(":8000"))}
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

你必须Delims先打电话ParseGlob。像这样:

    t := &Template{
        templates: template.Must(template.New("").Delims("[[", "]]").ParseGlob("public/views/*.html")),
    }


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信