首頁 > 後端開發 > Golang > 如何使用模板在 Go Web 應用程式中多次重複 HTML 程式碼?

如何使用模板在 Go Web 應用程式中多次重複 HTML 程式碼?

Barbara Streisand
發布: 2024-12-22 11:05:11
原創
795 人瀏覽過

How can I repeat HTML code multiple times in a Go web application using templates?

在Go 中重複HTML 程式碼

在Go Web 應用程式中,您需要多次輸出特定的HTML 行,具體取決於n 的值.

這裡有一個方法可以解決這個問題:

在HTML 模板中, {{range}}操作允許您可以迭代專案。但是,此操作需要使用切片、陣列或映射。

傳遞零值切片

要滿足此要求,您可以傳遞一個沒有分配記憶體的空切片,例如 make([]struct{}, n).

Template程式碼:

<ul>
{{range $idx, $e := .}}
    <li><a href="/?page={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>
登入後複製

測試程式碼:

tmpl := template.Must(template.New("").Parse(templ))
n := 5
if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil {
    panic(err)
}
登入後複製

測試程式碼:

<ul>

    <li><a href="/?page=0">0</a></li>

    <li><a href="/?page=1">1</a></li>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=3">3</a></li>

    <li><a href="/?page=4">4</a></li>

</ul>
登入後複製

輸出:

使用填滿切片

要自訂連結的起始索引,您可以用特定值填入切片。
<ul>
{{range .}}
    <li><a href="/?page={{.}}">{{.}}</a></li>
{{end}}
</ul>
登入後複製

範本代碼:

tmpl := template.Must(template.New("").Parse(templ))
n := 5
values := make([]int, n)
for i := range values {
    values[i] = (i + 1) * 2
}
if err := tmpl.Execute(os.Stdout, values); err != nil {
    panic(err)
}
登入後複製

範例測試程式碼:

<ul>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=4">4</a></li>

    <li><a href="/?page=6">6</a></li>

    <li><a href="/?page=8">8</a></li>

    <li><a href="/?page=10">10</a></li>

</ul>
登入後複製

輸出:

使用自訂函數

最後,您可以使用範本中的自訂函數將索引值修改為需要。
<ul>
{{range $idx, $e := .}}{{$idx := (Add $idx)}}
    <li><a href="/?page={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>
登入後複製

範本程式碼:

func Add(i int) int {
    return i + 1
}
登入後複製

自訂函數:

<ul>

    <li><a href="/?page=1">1</a></li>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=3">3</a></li>

    <li><a href="/?page=4">4</a></li>

    <li><a href="/?page=5">5</a></li>

</ul>
登入後複製
輸出:輸出:輸出:輸出:輸出:輸出: >

以上是如何使用模板在 Go Web 應用程式中多次重複 HTML 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板