Генерация уникального идентификатора и добавление к срезу

У меня есть структура:

type Records []struct {
    Example string `json:"example"`
    Data    string `json:"data"`
}

type Response struct {
    RecordsCount int `json:"recordsCount"`
    Records      []Records `json:"records"`
}

Но я хочу отобразить это в сворачивающемся разделе html как таковом:

<div class="collapse">
  <input type="checkbox" id="collapse-section1" checked aria-hidden="true">
  <label for="collapse-section1" aria-hidden="true">Collapse section 1</label>
  <div>
    <p>This is the first section of the collapse</p>
  </div>
  <input type="checkbox" id="collapse-section2" aria-hidden="true">
  <label for="collapse-section2" aria-hidden="true">Collapse section 2</label>
  <div>
    <p>This is the second section of the collapse</p>
  </div>
</div>

Но для этого мне нужен какой-то идентификатор, чтобы заменить фактические id="" из label и input.

Но в этом проблема, у моей структуры нет идентификатора; и иногда данные дублируются (я хочу, чтобы это было включено), поэтому, чтобы выполнить это правильно, мне нужно сгенерировать идентификатор, затем добавить его в срез и сделать это таким образом.

Я понятия не имею, как это сделать. Может ли кто-нибудь указать мне в правильном направлении?


go
person ilovejq    schedule 01.08.2020    source источник
comment
Использовать индекс фрагмента как часть идентификатора? Используете ли вы шаблоны Go? Если это так, вы можете сгенерировать идентификатор, используя индекс.   -  person Burak Serdar    schedule 01.08.2020
comment
Да, я использую шаблоны. вот так, {{range $index, _ := .response}}? @BurakSerdar   -  person ilovejq    schedule 01.08.2020
comment
Да, а затем использовать индекс типа id="collapse-section{{$index}}"   -  person Burak Serdar    schedule 01.08.2020
comment
Хаха спасибо! Второй раз ты спасаешь меня. Пожалуйста, отправьте, чтобы я мог отметить как правильный ответ :)   -  person ilovejq    schedule 01.08.2020


Ответы (1)


Один из способов сделать это с помощью шаблонов Go — использовать индекс массива как часть идентификатора:

{{range $index,$item := .response}}
  <input type="checkbox" id="collapse-section{{$index}}" checked aria-hidden="true">
...
person Burak Serdar    schedule 01.08.2020
comment
однако это работает нормально - когда я использую {{range $index,_ := .response}}, он возвращает ошибку (диапазон может только инициализировать переменные), он работает, если я удаляю, _ но это возвращает все данные. Любые идеи? - person ilovejq; 01.08.2020