首页 > 解决方案 > Ejs 文件无法读取数组变量

问题描述

我创建了一个 for 循环以在使用对象(请求)呈现 ejs 页面时创建记录表。我想根据来自 mongodb 的 Id 创建将每条记录链接到另一个页面的按钮。为此,我将每个对象_id 存储到另一个名为venueID 的数组中。我现在面临的问题是,当我将程序添加到这样的链接时,程序无法读取场地ID [i]:

<td> <button   onclick="location.href = `/dashboard/requests/details/${venueID[i]}`"

每当我单击按钮时,我都会收到一条错误消息,提示未定义场所 ID。虽然我可以使用 console.log(venueID[i]) 在我的控制台上输出它。

我该如何解决?

完整代码:

 <% var venueID=[]; %>
            <% for(var i=0; i<requested.length; i++) { %>

              <% venueID[i]=requested[i]._id %>

                <tr>
                      <td><%= venueID[i]%></td>
                      <td><%= requested[i].roomNo %> </td>   
                      <td><%= requested[i].requests.user.name %> </td>
                      <td><%= requested[i].requests.time%> </td>  
                      <td> <button   onclick="location.href = `/dashboard/requests/details/${venueID[i]}`">View Details</button> </td>


                </tr>
            <% } %>

标签: htmlnode.jsejs

解决方案


以这种方式使用您的 onclick 属性。

<td> <button   onclick="location.href = `/dashboard/requests/details/<%= venueID[i] %>`">View Details</button> </td>

requested直接使用

<td> <button   onclick="location.href = `/dashboard/requests/details/<%= requested[i]._id %>`">View Details</button> </td>

或者,您可以使用<a>标签进行导航。例如:

<td><a href="/dashboard/requests/details/<%= requested[i]._id %>" > <button>View Details</button></a> </td>

推荐阅读