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

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

有沒有辦法計入 Go 模板?

有沒有辦法計入 Go 模板?

Go
繁星coding 2022-06-27 10:54:46
我正在嘗試為 epub 創建一個 toc.ncx (只是一個 XML)文件。在這樣的目錄中,<navpoint>定義了 s,每個都有一個 id 和一個“播放順序”。Go模板有什么方法可以簡單地計算導航點嗎?我想過這樣的事情(非工作模板代碼){{$counter := 0}}{{define "NAVPOINT"}}  {{$counter = $counter + 1}}  <navpoint id="{{.}}" playorder="{{$counter}}">{{end}}{{range .TopLevel }}  {{template "NAVPOINT" .Id}}  {{range .SecondLevel }}    {{template "NAVPOINT" .Id}}    </navpoint>  {{end}}  </navpoint>{{end}}示例結構  { TopLevel: [      {         Id: "id-a"        SecondLevel: [          {            Id: "scnd-a"          }          {            Id: "scnd-b"          }        ]      }      {         Id: "id-b"        SecondLevel: [          {            Id: "scnd-c"          }          {            Id: "scnd-d"          }        ]      }    }這會給我這樣的東西  <navpoint id="id-a"      playorder="1">     <navpoint id="scnd-a" playorder="2"></navpoint>     <navpoint id="scnd-b" playorder="3"></navpoint>  </navpoint>  <navpoint id="id-b"      playorder="4">     <navpoint id="scnd-c" playorder="5"></navpoint>     <navpoint id="scnd-d" playorder="6"></navpoint>  </navpoint>我想我可以使用模板功能,而不是模板來實現這一點,但不知道如何實現這一點。模板函數可以有計數器嗎?
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

這是我現在使用的功能:


"navpoint": func() func(...string) string {

    i := 0

    return func(id ...string) string {

        if len(id) < 1 {

            return "</navPoint>"

        }

        i++

        return `<navPoint id="` + id[0] + `" playorder"` + strconv.Itoa(i) + `">`

    }

},

我在模板中以這種方式使用它:


{{$navpoint := navpoint}}

{{range .TopLevel }}

  {{call $navpoint .Id}}

  {{range .SecondLevel }}

    {{call $navpoint .Id}}

    {{call $navpoint}}

  {{end}}

  {{call $navpoint}}

{{end}}

如果使用 id (XX) 調用“navpoint”,它會給出開始標簽<navpoint id="XX" playorder="##">。在沒有 id 的情況下調用時,它會給出結束標簽</navpoint>


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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