"1.) Я не понимаю, как объединяются 2 массива для отображения в html."
Есть два массива, images
и bookcollscope
. Массив images
содержит список чисел от 0 до 29, я полагаю, каждое число представляет место, а массив bookcollscope
содержит все номера мест, которые уже забронированы. По сути, два массива на самом деле не объединяются, вместо этого при ng-repeat
отображается место для каждого элемента в массиве images
с этой строкой кода: <span ng-repeat="image in images track by $index">
Теперь с помощью bookcollscope
проверяется, печатать ли красное или зеленое место. Если в bookcollscope
существует массив $index
из images
, это означает, что место забронировано, поэтому отображается зеленое место, в противном случае отображается красное место.
"Они смещены на 1. Поэтому, если место 3 забронировано (недоступно), оно должно быть зеленого цвета, а место 4 отображается зеленым. Как это исправить?"
Проблема смещения возникает из-за того, что первый элемент в массиве images
равен 0, я полагаю, чтобы исправить это изменение на: <span ng-if="(bookcollscope).indexOf($index) != -1 && $index != 0">
в обоих внутренних диапазонах.
<!-- CONCERN: what does this do? -->
<div ng-if="($index + 1) % 5
<br></br>
</div>
Приведенное выше условие заключается в добавлении разрывов строк, если отображается 5 мест.