Как отобразить данные json из mon go с массивами в шаблоне e js? - PullRequest
0 голосов
/ 12 марта 2020

Я использую mon goose и express, между прочим. Я могу отобразить значения верхнего уровня, такие как «число», но я не могу получить «contact.email». Я испробовал множество опций на моем сервере. js file, но я надеюсь, что кто-нибудь может помочь мне извлечь эту информацию из json на стороне e js. Спасибо!

Я использую этот код в своем шаблоне e js:

`<% for(var i= 0 ; i < myObj.length; i++) {%>
  <li>
    <span><%=myObj[i].number %>
  </li>
  <% } %>
   </ul>`

схема

    "_id" : ObjectId("5e67c84a65a2893029991863"),
    "number" : 5,
    "contact" : [ 
        {
            "_id" : ObjectId("5e69a33a0208203268813e01"),
            "email" : "dhenley@gmail.com",

        }
    ]
}`



Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Предполагая, что ваш формат объекта имеет следующий вид: -

 var myObj= {
   "_id" : ObjectId("5e67c84a65a2893029991863"),
   "number" : 5,
   "contact" : [{
     "_id": ObjectId("5e69a33a0208203268813e01"),
       "email": "dhenley@gmail.com"
   }]
 };

Вы должны l oop ваши данные, как показано ниже: -

<span><%=myObj.number %></span>
<ul>
  <% for(var i= 0 ; i < myObj.contact.length; i++) {%>
  <li><%=myObj.contact[i].email %></li>
  <% } %>
</ul>`

Примечание: - Как myObj это объект. и myObj.contact является array из myObj. так что в этом случае вы должны l oop ваш myObj.contact.

0 голосов
/ 12 марта 2020

Вы можете попробовать это ниже, так как вам нужен еще один l oop для доступа к массиву контактов в вашем json:

<% for(var i= 0 ; i < myObj.length; i++) {%>
  <li>
    <span><%=myObj[i].number %>
  </li>
   <ul>
   for(var j=0 ; j < myObj[i].contact.length; j++)
   <li>
    <span><%=myObj[i].contact[j].email %>
  </li>
   <% } %>
  </ul>
  <% } %>
   </ul>`
...