Loop in Jade (в настоящее время известный как "Pug") шаблонизатор - PullRequest
52 голосов
/ 04 января 2012

Я хочу использовать простой цикл вроде for(int i=0; i<10; i++){}.

Как мне использовать его в движке Jade?Я работаю с Node.js и использую инфраструктуру expressjs.

Ответы [ 7 ]

87 голосов
/ 04 января 2012

например:

- for (var i = 0; i < 10; ++i) {
  li= array[i]
- }

вы можете увидеть https://github.com/visionmedia/jade для подробного документа.

72 голосов
/ 04 января 2012

Используя узел, у меня есть коллекция вещей @stuff и доступ к ней выглядит так:

25 голосов
/ 26 апреля 2016

Необычный, но красивый способ сделать это

Без индекса :

each _ in Array(5)
  = 'a'

Напечатает: aaaaa

С индексом :

each _, i in Array(5)
  = i

Напечатает: 01234

Примечания : В приведенных выше примерах я назначил параметр val синтаксиса итерации jade each для _, поскольку он требуется, но всегда будет возвращать undefined.

16 голосов
/ 04 января 2012

Вот очень простой файл jade, в котором есть цикл.Джейд очень чувствительна к пустому пространству.После строки определения цикла (for) вы должны указать отступ (табуляцию) для элементов, которые хотят войти в цикл.Вы можете сделать это без {}:

- var arr=['one', 'two', 'three'];
- var s = 'string';
doctype html
html
    head
    body
        section= s
        - for (var i=0; i<3; i++)
            div= arr[i]
9 голосов
/ 23 июля 2014

Просто добавьте еще одну возможность, поскольку это может помочь кому-то, кто пытается итерировать по массиву И поддерживать счетчик.Например, приведенный ниже код проходит через массив с именем items и отображает только первые 3 элемента.Обратите внимание, что each и if являются родными нефритами и не нуждаются в дефисе.

ul
  - var count = 0;
  each item in items
    if count < 3
      li= item.name
    - count++;
5 голосов
/ 12 ноября 2012

Вы также можете ускорить процесс с помощью петли while (см. Здесь: http://jsperf.com/javascript-while-vs-for-loops). Также гораздо более кратко и разборчиво ИМХО:

i = 10
while(i--)
    //- iterate here
    div= i
0 голосов
/ 08 августа 2017

Pug (переименован в «Jade») - это шаблонизатор для разработки веб-приложений с полным стеком.Он обеспечивает аккуратный и чистый синтаксис для написания HTML и поддерживает строгие отступы для пробелов (как Python).Это было реализовано с помощью JavaScript API.Язык в основном поддерживает две итерационные конструкции: каждая и while.«для» можно использовать вместо «каждый».Пожалуйста, обратитесь к языковой справке здесь:

https://pugjs.org/language/iteration.html

Вот один из моих фрагментов: каждый / для итерации в pug_screenshot

...