循环在Jade(目前称为"Pug")模板引擎

Huy*_*ran 52 javascript for-loop express pug

我想用一个简单的循环for(int i=0; i<10; i++){}.

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

qia*_*iao 87

例如:

- for (var i = 0; i < 10; ++i) {
  li= array[i]
- }
Run Code Online (Sandbox Code Playgroud)

您可以查看https://github.com/visionmedia/jade获取详细文档.


the*_*gah 72

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

- each stuff in stuffs
  p
    = stuff.sentence
Run Code Online (Sandbox Code Playgroud)

  • 这是根据http://jade-lang.com/reference/iteration/执行此操作的规范方法.而且,你实际上并不需要在第一行的'each`前面使用`-` (3认同)

Chr*_*ois 25

这是一种不寻常但非常漂亮的方式

没有索引:

each _ in Array(5)
  = 'a'
Run Code Online (Sandbox Code Playgroud)

将打印: aaaaa

有索引:

each _, i in Array(5)
  = i
Run Code Online (Sandbox Code Playgroud)

将打印: 01234

注意:在上面的例子中,我已经指定了valjade each迭代语法的参数,_因为它是必需的,但总会返回undefined.


Moh*_*sen 16

这是一个非常简单的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]
Run Code Online (Sandbox Code Playgroud)


k00*_*00k 9

只是添加另一种可能性,因为它可能会帮助那些尝试迭代数组并保持计数的人.例如,下面的代码通过一个名为的数组items,只显示前3个项目.请注意,eachif是本地玉石,不需要连字符.

ul
  - var count = 0;
  each item in items
    if count < 3
      li= item.name
    - count++;
Run Code Online (Sandbox Code Playgroud)


Sqr*_*rkt 5

您还可以通过while循环加快速度(请参阅此处:http://jsperf.com/javascript-while-vs-for-loops).还有更多简洁易读的恕我直言:

i = 10
while(i--)
    //- iterate here
    div= i
Run Code Online (Sandbox Code Playgroud)

  • 是的,但你的while循环从10开始并向下运行.这会以相反的顺序将项添加到DOM.你可能不希望这样. (2认同)