Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you do a for loop/for each in EJS?

I know it has to go inside <% %>, but I'm not sure if it's very different from a typical forEach/for loop. The documentation on the EJS site is pretty limited, so I came here.

<% include ../../partials/header %>

<body>
  <main>
    <h1>List of all quotes</h1>
    <ul>
      <li> <!-- for loop goes here, inside flounder -->
        <%
        all quote stuff goes here
        author
        content
        wrap it in a link to its quote page
      </li>
    </ul>
  </main>
</body>

</html>
like image 223
Tsardines Avatar asked Mar 13 '18 20:03

Tsardines


2 Answers

So here's the example on embeddedjs:

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

And here's what I did:

<% include ../../partials/header %> <
<body>
  <main>
    <h1>List of all quotes</h1>
    <ul>
      <% for(var i = 0; i < author.length; i++) {
        <li><%= author[i] %></li>
      <% } %>

      <% for(var i = 0; i < content.length; i++) {
        <li><%= content[i] %></li>
      <% } %>

    </ul>
  </main>
</body>

</html>
like image 186
Tsardines Avatar answered Oct 19 '22 18:10

Tsardines


Let say you have a student JSON object with details of student name, year and course then you can loop through with forEach as follows.

<ul>
 <% students.forEach(function(student) { %>
    <li> Name:<%= student.name %> Course:<%= student.course %></li>
 <% }); %> 
</ul>

The same can apply for your author and quote question above

like image 29
Kipruto Avatar answered Oct 19 '22 18:10

Kipruto