首页 > 解决方案 > 访问 EJS 中的先前范围

问题描述

我正在使用ejs创建我的网站,并且我试图在for 循环中创建一个 for 循环,但是当我尝试访问第一个循环范围内的值时我无法访问,有什么办法吗?

像这样:

<% for (let i = 0; i < array.length; i++) { %>
    <p><%= i %></p>

    <% for (let j = 0; j < array[i].object.length; j++) { %>
        <p><%= array[i].object %></p>
    <% } %>
<% } %>

标签: htmlejs

解决方案


我不确定你是否发布了完整的代码,但我看到你没有关闭第一个循环。但无论如何,我认为这不是错误添加的。

EJS 遵循 Javascript 语法。您应该能够从子循环中的父循环访问变量或数据。

只是为了清楚地说,这就是我会做的。假设您有以下一组数据。

students: [{
    name: ABC,
    age: 20,
    gender: male/female,
    scores: [
       {
         subject: 'physics',
         score: 70,
         maxScoreAllowed: 100
       }, .......
    ]
},.....]

为此,您可以像这样编写循环。

<% students.forEach(student => { %>
   <p><%= student.name =%>
   <% student.scores.forEach(score => { %>
       <p><%= score.subject + ' = ' + score.score + '/' + score.maxScoreAllowed 
       %>
       <!-- you can also access the student object here -->
   <% } %>
<% } %>

希望这可以帮助您了解您到底做错了什么。


推荐阅读