EJS 仅输出对象的某些部分
EJS only outputting some parts of object…
这个让我感到困惑。
我正在将一个对象传递到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
输出,所有其他输出在直接调用时都为空白。
事实证明我犯了一个错误,尽管我不希望导致此问题。
用于检索国家/地区数据的架构的猫鼬模型包含错误的架构。这是来自另一个模型的复制和粘贴作业,我显然更新了除模式本身之外的所有内容,重要的是name
是两个模式之间唯一的公共变量,所以我猜这就是为什么这是唯一一个"有效"的原因(当然还有_id)。
如果有人能告诉我为什么会这样,我很想知道,因为尽管这绝对是解决方案,但我不知道为什么模式会影响ejs
读取对象中变量的能力,但没有问题完全输出对象本身。
{ _id: 5504a5e7ff67ac473dd7655c, code: 'GB', name: 'United Kingdom', slug: 'uk', place: 'the UK', regions: [ 'London', 'Hampshire' ] }
你不循环
对象<%countries.forEach (function(country, index) {%>
<li><%= country.name %></li> // Outputs 'United Kingdom'
<% }) %>
在EJS视图中,您正在尝试循环游览
在控制器内部,您必须通过才能像这样查看
[{ _id: 5504a5e7ff67ac473dd7655c, code: 'GB', name: 'United Kingdom', slug: 'uk', place: 'the UK', regions: [ 'London', 'Hampshire' ] }]
forEach 在 JavaScript 中的数组上工作
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- ES6 对象分配部分项
- JSON数据的一部分被解释为对象,而类似的部分则被解释为数组:为什么