Ejs-файл не может прочитать переменную массива - PullRequest
0 голосов
/ 27 марта 2019

Я создал цикл for для создания таблицы записей при рендеринге страницы ejs с объектом (запрошено). Я хочу создать кнопки, которые связывают каждую запись с другой страницей на основе их идентификаторов из mongodb. Для этого я сохранил каждый объект _id в другом массиве с именем venueID. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что программа не может прочитать venueID [i], когда я добавляю ее по ссылке, например так:

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

всякий раз, когда я нажимаю на кнопку, я получаю сообщение о том, что venueID не определен. Хотя я могу вывести его на консоль, используя 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>
            <% } %>

1 Ответ

0 голосов
/ 27 марта 2019

Используйте свой атрибут 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>
...