【发布时间】:2012-02-02 11:00:57
【问题描述】:
我想使用像for(int i=0; i<10; i++){} 这样的简单循环。
如何在 Jade 引擎中使用它?我正在使用 Node.js 并使用 expressjs 框架。
【问题讨论】:
标签: javascript for-loop pug express
我想使用像for(int i=0; i<10; i++){} 这样的简单循环。
如何在 Jade 引擎中使用它?我正在使用 Node.js 并使用 expressjs 框架。
【问题讨论】:
标签: javascript for-loop pug express
Pug(从“Jade”重命名)是一个用于全栈 Web 应用程序开发的模板引擎。它为编写 HTML 提供了简洁的语法并保持严格的空格缩进(如 Python)。它已使用 JavaScript API 实现。该语言主要支持两种迭代结构:each 和 while。 'for' 可以用来代替'each'。请在此处查阅语言参考:
https://pugjs.org/language/iteration.html
这是我的一个 sn-ps: each/for iteration in pug_screenshot
【讨论】:
一种不寻常但很漂亮的方式
无索引:
each _ in Array(5)
= 'a'
将打印:aaaaa
带索引:
each _, i in Array(5)
= i
将打印:01234
注意事项:在上面的例子中,我已经将jade的each迭代语法的val参数赋值给_,因为它是必需的,但总是会返回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]
【讨论】:
span 而不是div
new line 原因。
只是添加另一种可能性,因为它可能会帮助尝试遍历数组并保持计数的人。例如,下面的代码会遍历一个名为 items 的数组,并且只显示前 3 项。注意each 和if 是原生玉,不需要连字符。
ul
- var count = 0;
each item in items
if count < 3
li= item.name
- count++;
【讨论】:
- count++;
您还可以使用while 循环加快处理速度(请参阅此处:http://jsperf.com/javascript-while-vs-for-loops)。恕我直言,也更简洁易读:
i = 10
while(i--)
//- iterate here
div= i
【讨论】:
var i = 0; while (i++ < 10) console.log(i-1) //=> 0123456789
【讨论】:
var Album = db.model('Album'); var album = new Album(); album.songs.push({_id:'4f046b3bf71f5ed522000002'}); SongSchema 没有在album.js 中定义。
使用节点我收集了 @stuff 的东西并像这样访问它:
- each stuff in stuffs
p
= stuff.sentence
【讨论】:
each 前面的 -
@stuff吗?为什么开头有@?