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

IT技术 javascript for-loop pug express
2021-03-18 22:06:43

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

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

6个回答

例如:

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

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

嗨 qiao,我这里有一个问题:LINK,我通过 <strong>alessioalex</strong> 解决了,但现在我有新问题:如果我的数据库结构是这样的,那么 1 张专辑我可以存储很多歌曲,是对的吗?为什么在 app.js 中做: var Album = db.model('Album'); var album = new Album(); album.songs.push({_id:'4f046b3bf71f5ed522000002'});<br/> 并且我得到错误无法调用未定义的方法 'call' <br/> 我如何存储到正确的位置?
2021-04-23 22:06:43
这可能是因为SongSchema没有在album.js.
2021-04-27 22:06:43
我有一个数组 x,console.log(x, x.length); 给我看这个: [{name:a,done:true},{name:c}] 0 这正常吗?我错过了什么
2021-04-28 22:06:43

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

- each stuff in stuffs
  p
    = stuff.sentence
这是根据jade-lang.com/reference/iteration执行此操作的规范方法此外,您实际上也不需要-each第一行的前面
2021-04-22 22:06:43
如果每个前面都有 -(破折号),则会出现 Pug 错误。
2021-05-10 22:06:43
你能解释一下@stuff吗?为什么@开头有?
2021-05-11 22:06:43

一种不寻常但很漂亮的做法

没有索引

each _ in Array(5)
  = 'a'

将打印: aaaaa

与索引

each _, i in Array(5)
  = i

将打印: 01234

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

这是一个非常简单的jade文件,其中包含一个循环。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]
@vsync 黑客将使用span而不是div
2021-04-28 22:06:43
我是说一般。这样元素之间总会有一个空格,因为new linejade 语法的工作方式是有原因的。
2021-05-09 22:06:43
您知道如何删除以这种方式生成的元素之间的空白吗?
2021-05-13 22:06:43

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

ul
  - var count = 0;
  each item in items
    if count < 3
      li= item.name
    - count++;
非常感谢您: - count++;
2021-05-17 22:06:43