高朗。如何使用 html/template 包创建循环函数

我正在尝试将循环实现为自定义函数。它需要迭代次数和大括号之间的内容,然后它应该迭代括号之间的内容 n 次。请看例子:


main.go


template.Must(template.ParseFiles("palette.html")).Funcs(template.FuncMap{

        "loop": func(n int, content string) string {

            var r string

            for i := 0; i <= n; i++ {

                r += content

            }

            return r

        },

    }).ExecuteTemplate(rw, index, nil)

索引.html


{{define "index"}}

<div class="row -flex palette">

  {{loop 16}}

    <div class="col-2"></div>

  {{end}}

</div>

{{end}}

输出


<div class="row -flex palette">

    <div class="col-2"></div>

    <div class="col-2"></div>

    <div class="col-2"></div>

    <div class="col-2"></div>

    ... 16 times

</div>

有可能实施吗?动机是 的标准功能text/template不允许只在大括号之间迭代内容。是的,我们可以range通过“外部”数据的行动来做到这一点。


温温酱
浏览 236回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go