Могу ли я использовать ng-repeat для итерации по массиву в AngularJS?
У меня возникли проблемы с использованием AngularJS ng-repeat. Вот что я имею:
<div ng:show="selected == 3">
<div class="columns">
<textarea rows="4" data-ng-model="modal.data.answer[1].text" cols="91">1</textarea>
</div>
<div class="columns">
<label>Explanation</label>
<textarea rows="2" data-ng-model="modal.data.answer[1].explanation" cols="91"></textarea>
</div>
<div class="columns">
<div class="colx2-left">
<span class="label">Correct</span>
<input type="checkbox" data-ng-model="modal.data.answer[1].correct" class="check-box"><input type="hidden" value="false" name="Details[0].Correct">
</div>
<div class="colx2-right">
<label>Image File</label>
<input type="text" data-ng-model="modal.data.answer[1]image" class="full-width">
</div>
</div>
</div>
В массиве modal.data.answ всегда будет шесть элементов. Могу ли я использовать ng-repeat для создания HTML для них и повторить даже числа [x] в массиве и увеличить число в первой строке для "selected =" от 3 до 8?
Насколько я знаю, я могу использовать <div ng-repeat="t in [3,4,5,6,7,8]"> </div>
, но как я могу получить значения t в таких вещах, как:
data-ng-model="modal.data.answer[1].text"
Ответы
Ответ 1
ваше редактирование направляется в нужном направлении, вы можете легко перебирать список целых чисел, вы просто используете значение вашего индекса как
<div ng-repeat="t in [3,4,5,6,7,8]">
....
data-ng-model="modal.data.answer[t].text"
...
Я сделал скрипку, если вы хотите попробовать http://jsfiddle.net/DotDotDot/tweyS/ (поле ввода здесь только для изменения выбранного значения, как в вашем образ кода, чтобы отобразить правильные поля)
получайте удовольствие
Ответ 2
Дубликаты в ретрансляторе не допускаются. Используйте выражение "track by" для указания уникальных ключей.
<div ng-repeat="n in [42, 42, 43, 43] track by $index">
{{n}}
</div>