Я хочу выполнить шаблон со следующими данными:
type EquipmentPage struct {
Name string
EquipmentList [] model.Equipment
Pages [] Page
}
В моем файле шаблона я хочу просмотреть все элементы оборудования в моей таблице базы данных.
type Equipment struct {
ID int
Name string
Description string
ImgPath string
Category string
Availability bool
Amount string
Storage string
}
Мой файл шаблона выглядит следующим образом:
{{define "base"}}
{{range .EquipmentList}}
<div class="row">
<div class="col-1"></div>
<div class="col-5">
<p> {{.Name}} </p>
<br>
{{.Description}}
<br>
<button type="button" class="btn btn-main btn-margin" ><b>Ausleihen</b></button>
{{if .Availability}}
<em class="status-text" style="color:green"> verfügbar </em>
{{else}}
<em class="status-text"> entliehen </em>
{{end}}
</div>
<div class="col-2"></div>
<div class="col-2" style="margin-top: 30px">
<img class="float-right img-responsive bild" src="{{.Imagelink}}" alt="Kann nicht gezeigt werden">
</div>
</div>
{{end}}
{{end}}
Когда я запускаю свою программу, она просто показывает мне первую запись моегоТаблица.
Я хочу отобразить все записи.У меня есть содержимое массива оборудования в выводе консоли, и отображаются все элементы.
РЕДАКТИРОВАТЬ:
Контроллер: (Тест шаблона не имеет содержимого)
func Equipment(w http.ResponseWriter, r *http.Request) {
data := EquipmentPage{
Name: "Equipment",
EquipmentList: model.GetEquipment(model.Db),
Pages: []Page{
{
Title: "Meine Geräte",
Active: false,
Link: "/my-equipment",
},
{
Title: "Equipment",
Active: true,
Link: "/equipment",
},
{
Title: "Logout",
Active: false,
Link: "/index",
},
},
}
fmt.Println(model.GetEquipment(model.Db))
tmpl:= template.Must(template.ParseFiles("template/base_equipment.html", "template/test.html"))
tmpl.ExecuteTemplate(w, "base", data)
}
ModeL:
func GetEquipment(Db *sql.DB) []Equipment {
sql_readall := `
select ID, Name, Description, ImgPath, Category, Availability, Amount, Storage from Equipment
`
rows, err := Db.Query(sql_readall)
if err != nil { panic(err) }
defer rows.Close()
var result []Equipment
for rows.Next() {
equipment := Equipment{}
err2 := rows.Scan(&equipment.ID, &equipment.Name, &equipment.Description, &equipment.ImgPath, &equipment.Category, &equipment.Availability, &equipment.Amount, &equipment.Storage)
if err2 != nil { panic(err2) }
result = append(result, equipment)
}
return result
}