Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js-使用ejs的动态列表_Javascript_Node.js_Ejs - Fatal编程技术网

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 });