Я пытаюсь разместить массив golang (также срез, структуру и т. д.) В HTML, чтобы я мог использовать элемент массива в содержимом элемента HTML при возврате HTML из веб-фреймворка golang gin. Другая проблема - как отобразить эти данные с помощью цикла? Такие как Flask jinja работает таким образом.
{% block body %}
<ul>
{% for user in users %}
<li><a href = "{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>






Обычно у вас есть папка с файлами шаблонов, поэтому сначала вам нужно сообщить джинну, где находятся эти шаблоны:
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