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 под капотом. Также дефис в примере шаблона (-}}) избавляется от пробелов до следующего токена, вам не нужно его использовать, если вы не хотите.

Другие вопросы по тегам