Использование диапазона для отображения всех элементов таблицы - PullRequest
0 голосов
/ 10 июня 2018

Я хочу выполнить шаблон со следующими данными:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...