Как рендерить данные в группах в ejs - PullRequest
0 голосов
/ 24 января 2020

Я хочу отобразить данные, которые были сгруппированы в E JS?

У меня есть следующие данные:

    "results": {
    "Angular CLI": [
        {
            "category_name": "Angular CLI",
            "article_title": "Mengenal Framework Angular CLI"
        }
        ],
       "Tips dan Trik": [
        {
            "category_name": "Tips dan Trik",
            "article_title": "Tutorial : Cara Membuat Repositori Github Private"
        },
        {
            "category_name": "Tips dan Trik",
            "article_title": "Mengenal Fitur Media Query pada CSS"
        }
           ]
              }

Следующие данные в файле E JS:

<% results.forEach(function(data) { %>
  <div>
    <p><%= data %></p>
  </div>
<% }); %>

Но данные вообще не отображаются.

РЕДАКТИРОВАТЬ:

Дорогие все, спасибо за некоторые объяснения. Так что я могу найти решение этой проблемы.

<% for (let category in results) { %>
  <b><%= category %></b>
    <% results[category].forEach((data, key) => { %>
      <p><%= data.article_title %></p>
    <% }) %>
<% } %>

1 Ответ

0 голосов
/ 04 февраля 2020

Если ваш объект выглядит примерно так ниже

 var obj = {"results": {
    "Angular CLI": [
        {
            "category_name": "Angular CLI",
            "article_title": "Mengenal Framework Angular CLI"
        }
        ],
       "Tips dan Trik": [
        {
            "category_name": "Tips dan Trik",
            "article_title": "Tutorial : Cara Membuat Repositori Github Private"
        },
        {
            "category_name": "Tips dan Trik",
            "article_title": "Mengenal Fitur Media Query pada CSS"
        }
           ]
              }

Поскольку ваш obj.results является объектом, а не массивом, вы можете перебирать все свойства obj.results объекта и отображать значения, подобные этому

<% for (var prop in obj.results) { %>
  <div>
    <p><%= prop%> : <%= results[prop] %></p>
  </div>
<% }); %>

Дайте мне знать, если я неправильно понял вашу проблему

...