我正在尝试在EJS中使用一个for循环来呈现我的表,但是我不断收到此错误消息,指出它找不到我的变量:
TypeError: /Users/martin/Documents/Atom-files/Nye_eksempler/testApp/public/views/billing.html:41
39| <% for (var i = 0; services.length; i++) { %>
40| <tr>
>> 41| <td><%= services[i].name %></td>
42| <td class="alignright"><%= services[i].price %></td>
43| </tr>
44| <% } %>
Cannot read property 'name' of undefined
有问题的代码是这样的:
<% for (var i = 0; services.length; i++) { %>
<tr>
<td><%= services[i].name %></td>
<td class="alignright"><%= services[i].price %></td>
</tr>
<% } %>
呈现视图的方式是这样的:
app.get('/', function(req, res) {
res.render('billing.html', {
total_payment: '$43',
name: 'martin scorsese',
date: '25. may',
billing_id: '#213123',
services: [{name: 'flight', price: '$22'}, {name: 'car', price: '$21'}]
} );
});
为什么这给我一个错误?我的其他变量加载没有问题,只是for循环和“服务”变量引起了麻烦。
您在定义for循环时遇到语法错误:您忘记定义迭代的上限。在您的情况下,索引超出范围。
<% for (var i = 0; i < services.length; i++) { %>
<tr>
<td><%= services[i].name %></td>
<td class="alignright"><%= services[i].price %></td>
</tr>
<% } %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句