Javascript Node.js-使用ejs的动态列表
我有一个这样的数组,例如:Javascript Node.js-使用ejs的动态列表,javascript,node.js,ejs,Javascript,Node.js,Ejs,我有一个这样的数组,例如: const arr=['foo','bar','baz'] arr可以有任何长度,我只是以这个为例。如何将arr动态添加到ejs上的列表中 我知道我能做到 // index.ejs <!doctype html> <html> <body> <ul> <li><%= item %></li> </ul>
const arr=['foo','bar','baz']代码>
arr
可以有任何长度,我只是以这个为例。如何将arr
动态添加到ejs上的列表中
我知道我能做到
// index.ejs
<!doctype html>
<html>
<body>
<ul>
<li><%= item %></li>
</ul>
</body>
</html>
// app.js
res.render('index', {
item: arr[0]
})
//index.ejs
//app.js
res.render('索引'{
项目:arr[0]
})
它将只渲染数组中的第一个项。我该如何让它变成这样:
<html>
<body>
<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
</body>
</html>
- 福
- 酒吧
- 巴兹
将数组传递给视图
// app.js
res.render('index', {
arr
})
循环通过它
<ul>
<% for(var i=0; i<arr.length; i++) {%>
<li><%= arr[i] %></li>
<% } %>
</ul>
另一种方法是绘制地图
//app
res.render('index',{ arr })
地图
{%>
您可以在ejs中使用数组的forEach
方法,就像在JavaScript中使用它一样
<ul>
<% arr.forEach((item) => { %>
<li><%= item %></li>
<% }) %>
</ul>
在这种情况下,如果不执行该检查,视图将崩溃,因为没有forEach
未定义的方法
<% if (arr && arr.length) { %>
<ul>
<% arr.forEach((item) => { %>
<li><%= item %></li>
<% }) %>
</ul>
<% } %>
res.render('index', { arr: undefined });
<% if (arr && arr.length) { %>
<ul>
<% arr.forEach((item) => { %>
<li><%= item %></li>
<% }) %>
</ul>
<% } %>
res.render(index, { arr });