我如何在ejs中的脚本标记内使用for循环

时间:2018-09-18 09:43:46

标签: javascript json chart.js ejs

我尝试使用chart.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] .temperature。

但是,我希望在内部使用for循环。 例如

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

但是我不能处理这个。

内是否有任何选项或方法可以处理此for循环?

谢谢。

1 个答案:

答案 0 :(得分:0)

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

<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++) { %>