822 NQ. ABC – repeat, repeat, repeat.

Best Binary Options Brokers 2020:
  • Binarium
    Binarium

    Best Binary Options Broker!
    Perfect For Beginners!
    Free Trading Education!
    Free Demo Account!
    Sign-up Bonus:

  • Binomo
    Binomo

    Good Choice For Experienced Traders!

Way to ng-repeat defined number of times instead of repeating over array?

Is there a way to ng-repeat a defined number of times instead of always having to iterate over an array?

For example, below I want the list item to show up 5 times assuming $scope.number equal to 5 in addition incrementing the number so each list item increments like 1, 2, 3, 4, 5

26 Answers 26

Update (9/25/2020)

Newer versions of AngularJS (>= 1.3.0) allow you to do this with only a variable (no function needed):

This was not possible at the time the question was first asked. Credit to @Nikhil Nambiar from his answer below for this update

Original (5/29/2020)

At the moment, ng-repeat only accepts a collection as a parameter, but you could do this:

And somewhere in your controller:

This would allow you to change $scope.number to any number as you please and still maintain the binding you’re looking for.

EDIT (1/6/2020) — Newer versions of AngularJS (>= 1.1.5) require track by $index :

Here is a fiddle with a couple of lists using the same getNumber function.

Best Binary Options Brokers 2020:
  • Binarium
    Binarium

    Best Binary Options Broker!
    Perfect For Beginners!
    Free Trading Education!
    Free Demo Account!
    Sign-up Bonus:

  • Binomo
    Binomo

    Good Choice For Experienced Traders!

#12.1 Цикл Repeat/Until “с постусловием” в Паскаль

Primary tabs

Forums:

Цикл Repeat/until

Цикл Repeat/until характеризуется следующими моментами:

  • Работает пока условие ложно.
  • Сначала выполняется виток цикла и лишь потом проверяется требуется ли завершать цикла или же нужен следующий повтор.
  • Такой цикл всегда выполнится хотя бы один раз (это связано с тем, что условие проверяется после выполнения тела цикла).
  • Операторные скобки вокруг тела цикла repeat-until не нужны не нужны — так как их заменяют сами два слова repeat и until (“повторяй” и “пока не”)

Пример: выведем на экран все целые числа от $1$ до $n$ (числа введённого пользователем):

— по сути это пример замены for на repeat-util, для ситуации перебора ряда чисел.

Repeat/until и другие циклы в Паскаль — связь между ними

Ранее мы уже изучили циклы:

  1. for — “с известным числом повторений”, который не проверяет логических условий.
  2. и while (т.н. цикл “с предусловием”) — цикл похожий на Repeat/until — также проверяющий логическое выражение, но while от repeat отличается по следующим пунктам:
    1. По условию выхода из цикла:
      • while работает пока его логическое условие истинно,
      • repeat-until наоборот пока ложно.
    2. По порядку проверки условия:
      • while сначала проверяет условие (если истинно – то продолжает работу), а потом делает очередной (в том числе первый) свой виток.
      • repeat-until сначала делает виток, а потом проверяет условие (если ложно – то продолжает работу).

Теоретические вопросы

  1. Что такое виток цикла?
  2. Чем отличается цикл repeat/until от циклов for и while? Похож ли он в чем-то на них?

Задачи для самостоятельного решения

Примечание: в задачах данного урока, в качестве конструкции для организации цикла (если требуется) используйте repeat-until, если в задаче явно не сказано использовать какую-то другую конструкцию.

  1. Выведите на экран, все числа от $55$ до $9236$.
  2. Пользователь вводит целое число, если оно больше единицы, то выведите на экран все целые числа от этого числа до единицы (в обратном порядке), которые делятся на $23$ без остатка. Иначе (если введённое пользователем число не больше единицы) сообщите об ошибке.
  3. Пользователь вводит в консоль символы (после каждого нажимая Enter), в ответ выводите символ ‘&’, до тех пор пока пользователь не введёт ‘#’, после чего завершите программу.
  4. Решите с помощью цикла repeat/until:
    Выведите на экран, все четные числа, делящиеся на $3$ и на $6$ нацело , лежащие в диапазоне от 35 до 117.
  5. Решите с помощью цикла repeat/until:
    Выведите на экран, все четные числа от 35 до 117 и нечетные числа, делящиеся на $7$ и $3$ нацело и при этом лежащие в диапазоне от 45 до 99.
    Указание: сначала можно решить задачу двумя циклами, но потом перепишите с использованием одного цикла, в теле которого составьте логическое выражение, описывающее подходящие числа (используйте логические операции).

8/22 NQ. ABC – repeat, repeat, repeat.

Как вы видели ранее, для добавления элементам html дополнительной функциональности AngularJS использует директивы. Например, в предыдущих разделах мы уже познакомились с рядом директив.

Как вы уже видели, директивы объявляются в виде атрибутов, например,

Некоторые директивы могут образовывать самостоятельные теги:

В AngularJS определено более 50 встроенных директив. Они охватывают широйчайший спектр функциональностей, которые востребованы во многих веб-приложениях: привязка данных, валидация форм, генерация шаблонов, обработка событий, управление html-элементами. Полный список директив вы можете посмотреть в документации. Сейчас же рассмотрим некоторые из них.

Директива ng-repeat

Директива ng-repeat позволяет производить обход массивов в стиле цикла for-each и генерировать для них элементы html. Например, при рассмотрении контроллеров мы создали контроллер phoneController . Изменим его так, чтобы он передавал в представление массив:

И чтобы вывести все элементы массива, применим директиву ng-repeat:

В данном случае с помощью выражения
у нас будет создаваться для каждого объекта в наборе phones элемент li , который будет содержать определенную информацию.

Встроенные переменные

При обходе массивов мы можем использовать ряд встроенных переменных AngularJS:

$index : возвращает индекс элемента в массиве

$first : возвращает true, если элемент является первым в массиве

$last : возвращает true, если элемент является последним в массиве

$middle : возвращает true, если элемент не является ни первым, ни последним в массиве

$even : возвращает true, если элемент является четным

$odd : возвращает true, если элемент является нечетным

Используем пару переменных:

Обход внутренних массивов

Возможна ситуация, когда объект в массиве, в свою очередь, сам содержит массив, и этот массив тоже надо обойти. В этом случае можно использовать вложеные директивы ng-repeat. Например, весь объект выглядит так:

Для вывода вложенного массива можно использовать следующий код:

Best Binary Options Brokers 2020:
  • Binarium
    Binarium

    Best Binary Options Broker!
    Perfect For Beginners!
    Free Trading Education!
    Free Demo Account!
    Sign-up Bonus:

  • Binomo
    Binomo

    Good Choice For Experienced Traders!

Like this post? Please share to your friends:
Best Binary Options Trading Guide For Beginners
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: