将嵌套数组从node.js服务器传递到ejs页面

时间:2017-03-27 08:58:42

标签: javascript arrays node.js nested ejs

我有这个对象:

{ 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服务器传递为空 怎么了? 非常感谢!

2 个答案:

答案 0 :(得分:1)

lista.forEach(function(elemento,i){

所以elemento是具有user属性和ralationships属性的对象。

ilista数组中对象olds的位置。

因此:

elemento[i].relationships

...是胡说八道:elemento不是lista

您可以使用

elemento.relationships

lista[i].relationships

(你还需要一致地拼写ralationships(原文如此)。

答案 1 :(得分:0)

问题发生在server.js中。谢谢你的帮助。