访问 EJS 中的先前作用域
Access to previous scope in 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>
<% } %>
<% } %>
我不确定你是否已经发布了完整的代码,但我看到你没有关闭第一个循环。但无论如何,我假设这不是错误添加的。
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 -->
<% } %>
<% } %>
希望这可以帮助您了解您究竟做错了什么。
我正在使用 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>
<% } %>
<% } %>
我不确定你是否已经发布了完整的代码,但我看到你没有关闭第一个循环。但无论如何,我假设这不是错误添加的。
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 -->
<% } %>
<% } %>
希望这可以帮助您了解您究竟做错了什么。