Как визуализировать HTML с данными golang в веб-фрейме golang gin?

Я пытаюсь разместить массив 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>

person 未来陆家嘴顶尖的投资人    schedule 14.03.2018    source источник
comment
github.com/gin-gonic/gin#html-rendering   -  person Peter    schedule 14.03.2018


Ответы (1)


Обычно у вас есть папка с файлами шаблонов, поэтому сначала вам нужно сообщить джинну, где находятся эти шаблоны:

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.

person Henri Koski    schedule 14.03.2018