У меня есть массив структур, который мне нужно разбить на страницы в конце представления.
Вот как выглядит мой код в представлении:
<div class="tab-content">
<div class="tab-pane active" id="tab1" >
<hr/>
{{range .c}}
<p>Number: {{.Number}}</p>
<p>Name: {{.Name}}</p>
<p>Parties: {{.A}} and {{.B}}</p>
<p>Location: {{.Location}}</p>
<a href="/search">Read More</a>
<hr/>
{{end}}
<div class="paging">
<ul class="pagination">
<li><a href="#"><i class="fa fa-angle-left"></i></a></li>
<li class="active"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#"><i class="fa fa-angle-right"></i></a></li>
</ul>
</div>
</div>
Я пытался найти решение для разбивки на страницы, потому что результаты исчисляются сотнями. Единственные решения golang, с которыми я сталкивался до сих пор, связаны с SQL. Я был бы очень признателен за решение для массива структур.
Заранее спасибо.
EDIT Мое внутреннее хранилище — BoltDB. Я получаю данные о контроллере, вызывая этот метод
func List(bucket string) []Data{
//Open BoltDB database
Open()
defer Close()
//Use a predefined struct to make an array
d:=make([]Data, 0)
//Fetch and unmarshal data as it is saved in byte form
db.View(func(tx *bolt.Tx) error {
cur := tx.Bucket([]byte(bucket)).Cursor()
for k, v := cur.First(); k != nil; k, v = cur.Next() {
d1:=Data{}
err:= json.Unmarshal(v, &d1)
if err !=nil{
return err
}
d=append(d, d1)
}
return nil
})
//Return the array of data
return d
}
Этот массив - это то, что я хотел бы повторить в представлении.