Javascript объект не показывает все результаты

0

Я использовал цикл for, чтобы поместить все элементы массива в vm.klassen. Я использовал console.log, чтобы увидеть, все ли элементы помещены в vm.klassen, что и есть.

Я пытаюсь показать результаты в интерфейсе, но он показывает только последний результат.

Для цикла:

if (vm.tijdvak.klassen.length > 1) {
          for (i = 0; i < vm.tijdvak.klassen.length; i++) {
                 vm.klassen = vm.tijdvak.klassen[i].naam
                 console.log(vm.klassen)
          }
}

HTML:

<p ng-if="vm.klassen">Klassen: <pre ng-if="vm.klassen">Namen: {{ vm.klassen }}</pre></p>

Что я делаю неправильно и почему он показывает только последний результат, пока он показывает каждый результат в console.log?

  • 0
    vm.tijdvak.klassen.length > 1 верно только в том случае, если есть 2 или более ... вы это знаете, верно?
  • 0
    Да. У меня есть проверка, которую я не показал, чтобы проверить, есть ли только 1 элемент в массиве. Эта проверка для нескольких.
Показать ещё 5 комментариев
Теги:

2 ответа

1
Лучший ответ

Он показывает последний, потому что вы назначаете текущий указатель naam

vm.klassen = vm.tijdvak.klassen[i].naam

Он заменит предыдущий naam

Все, что вам нужно, это ng-repeat

Как это

<div ng-repeat="klassen in vm.tijdvak.klassen">
 {{klassen.naam}}
</div>
  • 0
    {{klassen.naam}} , верно?
  • 0
    @Gustav спасибо за указание
Показать ещё 1 комментарий
0

Вы переопределяете vm.klassen в каждом цикле цикла. Если вы хотите, чтобы vm.klassen был массивом имени, вы можете сделать что-то вроде этого: vm.klassen.push(vm.tijdvak.klassen[i].naam). Разумеется, объявим vm.klassen как массив перед циклом for: loop vm.klassen = []

Ещё вопросы

Сообщество Overcoder
Наверх
Меню