最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Render array in Jade - Stack Overflow

programmeradmin2浏览0评论

I passed an array to jade

router.get('/index', function(req, res){
    var users = ["A","B","C"];  
    res.render('index', {user: users})
});   

//what i get in jade

li #{user}
<li>a,b,c</li>                               

li #(user[0])
<li>a</li>

How can i get this instead without having to write user[0], user[1], user[2]?

<li>A</li> 
<li>B</li> 
<li>C</li>

I have tried following, but i had error.

each item in #{user}
each item in user

I passed an array to jade

router.get('/index', function(req, res){
    var users = ["A","B","C"];  
    res.render('index', {user: users})
});   

//what i get in jade

li #{user}
<li>a,b,c</li>                               

li #(user[0])
<li>a</li>

How can i get this instead without having to write user[0], user[1], user[2]?

<li>A</li> 
<li>B</li> 
<li>C</li>

I have tried following, but i had error.

each item in #{user}
each item in user

Share Improve this question edited Sep 16, 2014 at 21:27 Kien Dao asked Sep 16, 2014 at 21:23 Kien DaoKien Dao 111 gold badge1 silver badge3 bronze badges 0
Add a ment  | 

3 Answers 3

Reset to default 7

Use each (see docs)

ul
  each user in users
    li= user

And you should change your rendering call to:

res.render('index', {users: users})
//                       ^ added this character

Since you have an array of user objects, you should call it users. That way you can map user, singular, to the value of each user.

See here for documentation.

ul                     // create ul list tag
  each u in user       // start loop
    li= u              // create li tag and assign innerHTML to array item value

You can also use javascript if the array is less amenable to the native each (already posted as an answer). - for (var i = 0; i < users.length; ++i) { li= users[i] - }

See: Loop in Jade (currently known as "Pug") template engine

发布评论

评论列表(0)

  1. 暂无评论