如何在EJS for循环中串联串联?

时间:2017-02-11 21:00:22

标签: node.js ejs

循环创建列表项和按钮的一些数据。我需要传递按钮id的项目,但我不知道如何串联连接。

  <% for(var i=0; i < data.length; i++) {%>
     <li><%= data[i].name + " " + data[i].species%> <button onclick="deleteAnimal(data[i]._id)" type="button"> Delete </button></li>
  <% } %>

如何获取deleteAnimal函数来解释实际的id值? 现在我得到的错误是data is not defined

2 个答案:

答案 0 :(得分:0)

使用<%=代码:

<% for(var i=0; i < data.length; i++) { %>
   <li><%= data[i].name + " " + data[i].species %><button onclick="deleteAnimal(<%= data[i]._id %>)" type="button"> Delete </button></li>
<% } %>

var data = [{ _id: 1 }, { _id: 2 }];

for (var i = 0; i < data.length; i++) {
  console.log(ejs.render('<button onclick="deleteAnimal(<%= data[i]._id %>)" type="button"> Delete </button>', {
    data: data
  }));
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://github.com/mde/ejs/releases/download/v2.5.5/ejs.min.js"></script>

答案 1 :(得分:0)

您没有正确传递ejs变量。您将数据作为普通的js变量传递。  使用<%=data[i]._id %>传递给deleteAnimal()函数。

  <% for(var i=0; i < data.length; i++) {%> <li><%= data[i].name + " " + data[i].species%> <button onclick="deleteAnimal(<%=data[i]._id %>)" type="button"> Delete </button></li> <% } %>