在 1 页中使用具有不同参数/变量的相同模板

我正在为我的网络应用程序使用 Go gin gonic。如何在 1 页中多次使用相同的模板文件,并将不同的变量传递给模板。


段.tmpl


{{ define "segment" }}

    <div>{{ .Variable }}</div>

{{ end }}

布局.tmpl


<!DOCTYPE HTML>

<html>

<body>

    {{ template "segment . }} #with a variable 1

    {{ template "segment . }} #with different variable

    {{ template "segment . }} #another same template with another 

</body>

</html>

main.go


r.GET("/home/", func(c *gin.Context) {  

    tmpl := template.Must(template.ParseFiles("templates/layout.tmpl", "templates/product_add.tmpl", "templates/segment.tmpl")

    r.SetHTMLTemplate(tmpl)

    c.HTML(200, "layout", gin.H {

        "Variable1": "var1",

        "variable2": "var2",

    })

}

如何在“主页”页面中多次使用 segment.tmpl 并将不同类型的变量传递给 segment.tmpl?我到处搜索,一无所获,最接近的是template.Clone,但仍然找不到它的任何例子。


呼如林
浏览 113回答 1
1回答

凤凰求蛊

您可以将任何值作为“管道”传递给模板,它不必是“点”,即您可以传递函数调用的结果,或者在这种情况下,是访问映射值的结果.{{ template "segment" .Variable1 }}然后在模板"segment"中,您可以使用点来引用管道,即{{ . }}.段.tmpl{{ define "segment" }}&nbsp; &nbsp; <div>{{ . }}</div>{{ end }}布局.tmpl<!DOCTYPE HTML><html><body>&nbsp; &nbsp; {{ template "segment .Variable1 }}&nbsp; &nbsp; {{ template "segment .Variable2 }}&nbsp; &nbsp; {{ template "segment .AnotherVariable }}</body></html>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go