亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang Revel:對結構數組進行分頁

Golang Revel:對結構數組進行分頁

Go
達令說 2021-12-06 19:31:56
我有一個結構數組,我需要在視圖端進行分頁。這是我的代碼在視圖中的樣子:<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 相關。我非常感謝結構數組的解決方案。先感謝您。編輯我的后端存儲是 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}這個數組是我想在視圖上迭代的。
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

您可以收集從 list 函數返回的完整數據數組。


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()]

}

雖然你會得到你想要的行為,但這在內存方面是非常浪費的,特別是如果你的數據數組很大。希望這可以幫助。


查看完整回答
反對 回復 2021-12-06
  • 1 回答
  • 0 關注
  • 343 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號