Заполнение шаблона html из разных слайсов
Всем здравствуйте. У меня есть код который получает данные из базы(две разные таблицы) и кладет данные в две разные структуры. После того как структуры заполнены и соединение с бд закрыто, данные из двух структур летят в два разных слайса. И после этого мне нужно вывести эти данные в один html шаблон. Если я все правильно понял, то template.Execute()может вывести данные только одного слайса(по крайнем мере я не знаю как вывести с его помощью данные из двух слайсов), пэтому я подумал объеденить два слайса в один, но так как слайсы имеют тип двух разных структур, то это не получится сделать(пробовал). Отсюда и вопрос, как вывести данные в один html-шаблон из двух разных слайсов?
Ответы (1 шт):
У вас 2 массива, нужно их вывести в html, как я понял.
<html>
<head>
<meta charset="utf-8">
</head>
<body>
{{range .Array1}}
<tr>
<td>{{.IdU}}</td>
<td>{{.Name}}</td>
<td>{{.SecName}}</td>
<br>
</tr>
{{end}}
{{range .Array2}}
<tr>
<td>{{.Id}}</td>
<td>{{.Company}}</td>
<td>{{.Model}}</td>
<td>{{.Price}}</td>
<br>
</tr>
{{end}}
</body>
</html>
Тогда можно создать кастомную структуру, добавить туда нужные данные или массивы. передать в теймплейт.
data := struct{
Array1 []Names
Array2 []Products
} {
Array1: names,
Array2: products,
}
err = templn.Execute(w, data)
if err != nil {
panic(err)
}
Главное, чтобы поля были экспортируемы.