22586


Goのtemplateで下記のようなページャー部分を作成したいです。

[code]

    {{ define "pager" }}
    <ul class="pagination">
        {{ if lt .ContentNum 5 }}
        {{/*これ↓をContentNum回繰り返したい*/}}
        <li><a href="/{{ .BaseLink }}?p=$index+1"></a></li>
        {{ else }}
        <li><a href="/{{ .BaseLink }}?p=2">2</a></li>
        <li><a href="/{{ .BaseLink }}?p=3">3</a></li>
        <p>...</p>
        <li><a href="/{{ .BaseLink }}>p={{ .PageNum }}">{{ .PageNum }}</a></li>
        {{ end }}
    </ul>
    {{ end }}
    
[/code]

`range`で配列を繰り返し処理できますが、数字で回数を指定して繰り返し処理をするにはどのようにすればいのでしょうか。


CC BY-SA 3.0
2016-02-27T02:20:55.143
22582
2016-02-27T03:04:39.743
7232
question
html go
Goのtemplateで整数回繰り返すには


指定したサイズの配列を作る関数を追加すればよいと思います。

[code]

    package main
    
    import (
        "os"
        "text/template"
    )
    
    func main() {
        funcMap := template.FuncMap{
            "for": func(num int) []int {
                return make([]int, num)
            },
        }
    
        const templateText = `
        {{ range $index, $elem := for . }}
        {{ $index }}
        {{ end }}
        `
    
        tmpl, _ := template.New("t").Funcs(funcMap).Parse(templateText)
        tmpl.Execute(os.Stdout, 5)
    }
    
[/code]


CC BY-SA 3.0
2016-02-27T03:04:39.743
22586
2016-02-27T03:04:39.743
3639
22582
answer