如何在模板ejs中的对象数组?

时间:2015-03-22 04:15:27

标签: node.js express ejs

我有一个结果变量,它是一个对象数组。我将结果变量从我的javascript文件传送到我的主路径文件。我正在尝试渲染我的页面以显示模板ejs文件中每个对象的列表。我可以很好地列出所有内容,但列表是[对象对象]而不是对象中的实际单词。如何在模板文件中将其显示为字符串?

这是我的路线档案:

app.get('/announcement', function(req,res){
        var getAnnouncements = require('../public/javascripts/announcement.js'); //Load the module, get the name of the script file

        //define the functions here
        var onSpreadsheetSuccess = function (results) { //result is announcementArray

            //add results list to template);
            res.render('announcement', {title: "Announcement page", results: results});

        }

        getAnnouncements.loadSheet(onSpreadsheetError, onSpreadsheetSuccess); //call the function from script with the parameters passed

})

这就是我在模板ejs文件中所做的事情:

<ul>
    <% results.forEach(function(result){ %>
        <li><%= result %></li>
    <%  }); %>
</ul>

4 个答案:

答案 0 :(得分:2)

我的回答如下。我改变了其他人的答案。

FullSimplify

答案 1 :(得分:0)

<ul>
    <% for(var i=0; i<results.length; i++) { %>
        <li>
            <%= results[i] %>
        </li>
    <% } %>
</ul>

答案 2 :(得分:0)

这将显示结果ID的列表,只需根据要显示的对象的属性更改_id。

 <ul> 
  <% results.map((result)=>{%>
    <li><%= result._id %></li>
  <%}) %>
 </ul>

答案 3 :(得分:-1)

试试这个:

<ul>
     <%for (var result in results){%>
                <li><%=result%></li>    
        <%}%>
</ul>