如何在 EJS 中使用脚本标签内的 for 循环



我尝试使用图表绘制图表.js。

为了获取我的数据,我尝试使用 ejs 标签

例如 在 ejs 中,我像这样输入 html,效果很好。

<p>date: <%= today %></p>
<p>temperature: <%= data[data.length-1].temperature %>℃</p>
<h1>5days average temperature</h1>
<ul>
<% for(var i = 0; i < 5; i++) {(function (j) {%>
<li><%= dateList[j] %>%></li>
<ul><li><%= avgLocTmpList[i] %></li></ul>
<% })(i);} %>
</ul>

但是当我使用 chart.js 时,我必须在里面使用这样的 ejs 标签。

<script>
var temper0 = '<%= data[0].temperature%>';
tempList.push(temper0);
var temper1 = '<%= data[1].temperature%>';
tempList.push(temper1);
var temper2 = '<%= data[2].temperature%>';
tempList.push(temper2);
</script>

我可以在标签内获取数据[0].温度。

但是,我希望在里面使用 for 循环. 如

<% for(var i = 0; i < 5; i++) {
<%= data[i].temperature %>
<% }%>

但我无法处理这个。 有什么选择或方法可以在内部循环中处理这个问题吗?

谢谢,提前。

在类似的情况下,我在脚本标签中使用它并工作! 因此,请尝试以下操作并检查它是否有效。

<script type="text/javascript">
<% data.forEach(function (d) { %>
console.log("<%= d %>"); // or anything you want to do.    
<% }) %>
</script>

以下循环代码中也存在错误。关心打开和关闭 ejs 标签。在第一行中,您忘记关闭 ejs 标记。

<% for(var i = 0; i < 5; i++) {
<%= data[i].temperature %>
<% }%>

使用这个:<% for(var i = 0; i < 5; i++) { %>

我试图以这种方式从我的数据库中获取属性图像:

<script>
let data= JSON.parse('<%-JSON.stringify(property)%>')
let dataArray= [];
for (var i = 0; i < data.length; i++) {
let image = data[i].image_name
dataArray.push({
id: i, src: '/uploads/properties/' + image
})

}
</script>

我有一个MongoDB数据库,我想汇总客户添加到购物车的商品的所有价格,我需要您问的答案,所以我尝试了上述示例,即使它们工作正常,它也为代码提供了红色下划线。因此,如果要使用来自服务器端的变量,则必须引用代码。这样你就不会得到任何红色下划线的代码,它看起来非常好。

<script>
let prices = []
let pricex;
let sum = 0;
" <% for (let i = 0; i < products.userCart.length; i++) { %>"
pricex = "<%= (products.userCart[i].quantity *  
products.userCart[i].price) %>";
prices.push(pricex);

" <%    } %>"
for (let i = 0; i < prices.length; i++) {
sum = sum + parseInt(prices[i]);

}
console.log(sum);
</script>

最新更新