我有一個結(jié)構(gòu)數(shù)組,我需要在視圖端進行分頁。這是我的代碼在視圖中的樣子:<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>我試圖尋找解決方案來分頁,因為結(jié)果有數(shù)百個。到目前為止,我遇到的唯一 golang 解決方案與 SQL 相關(guān)。我非常感謝結(jié)構(gòu)數(shù)組的解決方案。先感謝您。編輯我的后端存儲是 BoltDB。我通過調(diào)用此方法獲取控制器上的數(shù)據(jù)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}這個數(shù)組是我想在視圖上迭代的。
1 回答

慕婉清6462132
TA貢獻1804條經(jīng)驗 獲得超2個贊
您可以收集從 list 函數(shù)返回的完整數(shù)據(jù)數(shù)組。
func paginate(x []Data, skip int, size int) []int {
limit := func() int {
if skip+size > len(x) {
return len(x)
} else {
return skip + size
}
}
start := func() int {
if skip > len(x) {
return len(x)
} else {
return skip
}
}
return x[start():limit()]
}
雖然你會得到你想要的行為,但這在內(nèi)存方面是非常浪費的,特別是如果你的數(shù)據(jù)數(shù)組很大。希望這可以幫助。
- 1 回答
- 0 關(guān)注
- 336 瀏覽
添加回答
舉報
0/150
提交
取消