循环
尽管已经支持JavaScript原生代码,Jade还是支持了一些特殊的标签,它们可以让模板更加易于理解,其中之一就是each
, 这种形式:
each VAL[, KEY] in OBJ
一个遍历数组的例子 :
- var items = ["one", "two", "three"]
each item in items
li= item
渲染为:
<li>one</li>
<li>two</li>
<li>three</li>
遍历一个数组同时带上索引:
items = ["one", "two", "three"]
each item, i in items
li #{item}: #{i}
渲染为:
<li>one: 0</li>
<li>two: 1</li>
<li>three: 2</li>
遍历一个数组的键值:
obj = { foo: 'bar' }
each val, key in obj
li #{key}: #{val}
将会渲染为:<li>foo: bar</li>
Jade在内部会把这些语句转换成原生的JavaScript语句,就像使用 users.forEach(function(user){
, 词法作用域和嵌套会像在普通的JavaScript中一样:
each user in users
each role in user.roles
li= role
如果你喜欢,也可以使用for
:
for user in users
for role in user.roles
li= role