Этот меня озадачил.EJS только вывод некоторых частей объекта ...
Я передаю объект в шаблон ejs
; если я вывожу, что объект Я вижу, что я ожидаю:
{ _id: 5504a5e7ff67ac473dd7655c, code: 'GB', name: 'United Kingdom', slug: 'uk', place: 'the UK', regions: [ 'London', 'Hampshire' ] }
И если выводить name
в цикле он работает, как я ожидал:
<%countries.forEach (function(country, index) {%>
<li><%= country.name %></li> // Outputs 'United Kingdom'
<% }) %>
Однако, если я пытаюсь получить доступ к ничего но имя он выводит пустой:
<%countries.forEach (function(country, index) {%>
<li><%= country.code %></li> // Outputs ''
<% }) %>
Я не могу понять это, я делаю что-то до боли очевидно, неправильно, или это, как сумасшедший, как Я думаю?
Редактировать: _id
также будет выводиться. Итак, _id
и name
вывод, как и ожидалось, все остальные выводятся пустым при вызове напрямую.
Как вы передаете данные в EJS? И что он выводит, если вы помещаете 'console.log (страна)' внутри цикла? – victorkohl
Все выходы прекрасно! Это сумасшедшая вещь. Это нормально в выражении при выводе на консоль (просто передается в 'res.render'), а вывод, который вы видите выше, - это то, что я получаю при выводе' country' непосредственно внутри этого 'forEach'. Я не могу понять это. –
Добавление редактирования: '_id' также выводит штраф. Таким образом, '_id' и' name' выводятся, ничего больше. –