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
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 engine