Beego范围在视图模板中

时间:2017-11-14 09:46:48

标签: go range beego

我有一个值为5的整数,我想循环它并在html中使用range或for循环填充下拉列表。任何人都可以帮助我如何做到这一点

<a class="dropdown-item" href="#">1</a>
<a class="dropdown-item" href="#">2</a>
<a class="dropdown-item" href="#">3</a>
<a class="dropdown-item" href="#">4</a>
<a class="dropdown-item" href="#">5</a>

1 个答案:

答案 0 :(得分:0)

您首先需要可以覆盖的内容,例如arrayslicemapchannel

例如,在Go代码中创建一个整数([]int)并将其分配给模板数据。

items := []int{1, 2, 3, 4, 5}
this.Data["items"] = items

现在,在模板中,您可以像items一样超出范围:

{{range $val := .items}}
<a class="dropdown-item" href="#">{{$val}}</a>
{{end}}
func numSequence(num int) []int {
    out := make([]int, num) // create slice of length equal to num

    for i := range out {
        out[i] = i + 1
    }
    return out
}

fmt.Println(numSequence(5))
// Output: [1, 2, 3, 4, 5]

fmt.Println(numSequence(7))
// Output: [1, 2, 3, 4, 5, 6, 7]

Go playgound上的可执行示例。

请注意:由于playground不支持导入第三方软件包,因此示例使用html/template软件包而不是使用beego框架执行模板,但这是可以的,因为beego使用html/template下的引擎盖。此外,示例模板中的连字符(-}})除去下一个标记之外的空格,如果您不想使用它,则不必使用它。