转到模板:循环索引

时间:2014-05-01 17:31:45

标签: templates go range

我想在Go html / template中呈现一个简单的分页列表。 Go模板仅支持范围内的循环({{range x}}{{.}}{{end}}) - 我只有一个简单的int。有没有比创建正确大小的假片,地图或陈更优雅的方式?所有这些看起来都有点沉重,只是为了输出N次。

1 个答案:

答案 0 :(得分:3)

您可以注册一个产生切片的函数:

package main

import (
  "os"
  "text/template"
)

func main() {

    funcMap := template.FuncMap{
      "slice": func(i int) []int { return make([]int, i) },
    }

    tmpl := `{{$x := .}}{{range slice 10}}<p>{{$x}}</p>{{end}}`
    t, _ := template.New("template").Funcs(funcMap).Parse(tmpl)
    t.Execute(os.Stdout, "42")

}

playground

中查看