我有这个对象:
{ id: 22,
user: 'Username',
born: '06/10/1975',
ralationships:
[ { profession: 'Joiner' },
{ profession: 'Farmer' },
{ company: 'Summer Sun Ranch', nickname: 'SunRanch' } ] }
以上数组是console.log(myArr[x]);
然后我将它传递给ejs trough
res.render('index', {
lista: myArr
});
ejs索引是这样的:
<h1>Persone</h1>
<ul>
<% lista.forEach(function(elemento,i){ %>
<li>
<%= elemento.user %>
</li>
<ul>
<% for (var j = 0; j < elemento[i].relationships.length; j++) {%>
<li>
<%= elemento[i].relationships[j] %>
</li>
<% } %>
</ul>
<% }) %>
</ul>
我完全无法以任何方式处理关系子数组(上面的代码只是众多尝试之一)。子阵列似乎不见了。
更新:在ejs我把这行
<%- JSON.stringify(elemento) %>
我收到了这个:{"id":22,"user":"Username","born":"06/10/1975","relationships":[]}
这意味着关系从node.js服务器传递为空 怎么了? 非常感谢!
答案 0 :(得分:1)
lista.forEach(function(elemento,i){
所以elemento
是具有user
属性和ralationships
属性的对象。
而i
是lista
数组中对象olds的位置。
因此:
elemento[i].relationships
...是胡说八道:elemento
不是lista
。
您可以使用
elemento.relationships
或
lista[i].relationships
(你还需要一致地拼写ralationships
(原文如此)。
答案 1 :(得分:0)
问题发生在server.js中。谢谢你的帮助。