【发布时间】:2015-03-15 18:59:00
【问题描述】:
这个让我很困惑。
我将一个对象传递给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(country)放入循环中,它会输出什么? -
所有输出正常!这就是疯狂的事情。当输出到控制台时(只是被传递到
res.render),它很好,您在上面看到的输出是我直接在forEach内输出country时得到的。我无法理解它。 -
添加编辑:
_id也输出正常。所以_id和name输出,没有别的。 -
console.log(Object.keys(country))怎么样,它打印什么? -
@victorkohl 在 forEach 循环本身中?在 EJS 中使用时,console.logs 似乎没有为我输出。直接输出给我: $__,isNew,errors,_maxListeners,_doc,_pres,_posts,save,_events
标签: javascript node.js express ejs