Beego диапазон в шаблонах представления
У меня есть целое число, имеющее значение 5, и я хочу цикл против него и заполнить раскрывающийся список следующим образом, используя диапазон или цикл в HTML. может ли кто-нибудь помочь мне, как это сделать
<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 ответ
Сначала вам нужно что-то, что вы можете варьировать, как array
, slice
, map
или channel
,
Например, в вашем коде 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.
Обратите внимание: поскольку площадка не поддерживает импорт сторонних пакетов, в примере шаблон выполняется с использованием html/template
пакет вместо использования Beego Framework, но это нормально, потому что Beego использует html/template
под капотом. Также дефис в примере шаблона (-}}
) избавляется от пробелов до следующего токена, вам не нужно его использовать, если вы не хотите.