我正在尝试将golang数组(也是slice,struct等)放到html中,所以我可以在html元素内容中使用数组元素从golang gin web框架返回html时。另一个问题是如何用循环渲染这些数据?如烧瓶金佳 以这种方式工作。
{% block body %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
答案 0 :(得分:2)
通常你有一个包含模板文件的文件夹,所以首先你需要告诉杜松子酒这些模板的位置:
router := gin.Default()
router.LoadHTMLGlob("templates/*")
然后在处理函数中,您只需将数据模板名称传递给HTML函数,如下所示:
func (s *Server) renderIndex(c *gin.Context) {
c.HTML(http.StatusOK, "index.tmpl", []string{"a", "b", "c"})
}
在index.tmpl
中你可以像这样循环数据:
{{range .}}
{{.}}
{{end}}
.
始终是当前上下文,因此第一行.
是输入数据,范围循环.
内是当前元素。
模板示例:https://play.golang.org/p/4_IPwD3Y84D
有关模板的文档:https://golang.org/pkg/text/template/
很棒的例子:https://astaxie.gitbooks.io/build-web-application-with-golang/en/07.4.html