繁体   English   中英

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

[英]Loop in Jade (currently known as “Pug”) template engine

我想使用像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 )之后,你应该给想要进入循环的东西一个缩进(制表符)。 你可以不用{}来做到这一点:

- 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 )。 还有更多简洁易读的恕我直言:

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_screenshot中的迭代

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM