Jade(目前称为“Pug"”)模板引擎中的循环

Loop in Jade (currently known as "Pug") template engine

本文关键字:引擎 循环 quot 目前 Pug Jade      更新时间:2023-09-26

我想使用像for(int i=0; i<10; i++){}这样的简单循环。

如何在Jade引擎中使用它?我正在使用Node.js和使用expressjs框架。

例如:

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

详细文档请参见https://github.com/visionmedia/jade

使用节点,我有一个东西@stuff的集合,并像这样访问它:

- each stuff in stuffs
  p
    = stuff.sentence

一个不寻常但很漂亮的方法

没有指数

:

each _ in Array(5)
  = 'a'

将打印:aaaaa

与指数

:

each _, i in Array(5)
  = i

将打印:01234

注释:在上面的例子中,我已经将jade的each迭代语法的val参数赋值给_,因为它是必需的,但将始终返回undefined

这是一个非常简单的jade文件,其中有一个循环。玉对留白非常敏感。在循环定义行(for)之后,你应该给想要进入循环的东西一个缩进(tab)。你可以不使用{}:

- 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]

只是添加另一种可能性,因为它可能有助于那些试图迭代数组并维持计数的人。例如,下面的代码遍历一个名为items的数组,只显示前3项。注意eachif是原生玉石,不需要连字符。

ul
  - var count = 0;
  each item in items
    if count < 3
      li= item.name
    - count++;

您也可以使用while循环来加快速度(参见这里:http://jsperf.com/javascript-while-vs-for-loops)。也更简洁易读IMHO:

i = 10
while(i--)
    //- iterate here
    div= i

Pug(从'Jade'重命名)是一个用于全栈web应用开发的模板引擎。它为编写HTML提供了整洁的语法,并保持了严格的空白缩进(像Python一样)。它是用JavaScript api实现的。该语言主要支持两种迭代结构:each和while。for可以代替each。请参考此处的语言参考:

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

这是我的一个片段:pug_screen

中的每个/for迭代