Визуализировать HTML файлов в Go Gin - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь отобразить вывод в шаблонах HTML вместо JSON. Как-то работает не так, как ожидалось. Пробовал разными способами, но безуспешно. Любая помощь была бы замечательной. Вот мой код

c.HTML(
    http.StatusOK,
    "templates/index.html",
    gin.H{
        "status": http.StatusOK,
        "data": _books,
    },
)

1 Ответ

1 голос
/ 28 мая 2020

Посмотрев на скриншот, я заметил, что нет звонка на r.LoadHTMLFiles("templates/index.html") или router.LoadHTMLGlob("templates/*"). Если это не сделано ни в одном из ваших других файлов, это может быть проблемой. :

основной. go

package main

import (
    "log"
    "net/http"

    "github.com/gin-gonic/gin"
)

// Book ...
type Book struct {
    Title  string
    Author string
}

func main() {
    r := gin.Default()
    r.LoadHTMLFiles("index.html")

    books := make([]Book, 0)
    books = append(books, Book{
        Title:  "Title 1",
        Author: "Author 1",
    })
    books = append(books, Book{
        Title:  "Title 2",
        Author: "Author 2",
    })

    r.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{
            "books": books,
        })
    })
    log.Fatal(r.Run())
}

индекс. html

<html>
    {{ range $book := .books }}
    <h1>{{ .Title }}</h1>
    <h3>{{ .Author }}</h3>
    <hr/>
    {{ end }}
</html>
...