naghtigall
@naghtigall
Дизайнер и разработчик сайтов

Не получается передать структуру в html шаблон. Что я делаю не так?

Помогите новичку в Golang!
При попытке обратиться к полю структуры выдает role is an unexported field of struct type main.Client
Основной код (опускаю все лишнее и функцию main):
type Client struct {
	role string
	ip   string
}
data := Client{role: "client", ip: "0.0.0.0"}  //Создаю экземпляр структуры

files := []string{
		"./ui/html/client.page.tmpl",
"./ui/html/home.page.tmpl",
}
ts, err := template.ParseFiles(files...) //Парсится шаблон

err = ts.Execute(w, data) //Передаю данные в шаблон


Код шаблона /ui/html/client.page.tmpl:
{{template "base" .}}
{{define "client"}}
<h3 class="uk-card-title">User info</h3>
    {{if .}}
        <p>Role: {{ .role}}</p>
        <p class="text-end"><small>{{ .ip}}</small></p>
    {{end}}
{{end}}

Если в шаблоне оставить только
<p>Role: {{ .}}</p>
тогда выводится в шаблон вся структура в виде строки Role: {client 0.0.0.0}
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
@falconandy
Явно же написано: role is an unexported field of struct type main.Client
Идентифакторы с маленькой буквы являются неэкспортируемыми, нужно переименовать поля role/ip в Role/Ip и всё должно получиться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы