【问题标题】:Strange NodeJS with Express and EJS looping mystery奇怪的 NodeJS 与 Express 和 EJS 循环之谜
【发布时间】:2015-06-17 17:47:54
【问题描述】:

我有一些 JSON 传递给局部视图。

{
"0": {
    "storename": "Park plaza",
    "prediction": "Retail Sites",
    "probability": 0.851005
     },
"1": {
    "storename": "Emory Mills",
    "prediction": "Retail Sites",
    "probability": 0.851005744010425
     },
"2": {
    "storename": "Potamac Heights",
    "prediction": "Retail Sites",
    "probability": 0.851005744010425
    }
}

这是循环的代码。

<% for(var i=0; i < tabledata.length; i++) { %>
<tr>
    <td><%= tabledata[i].storename %></td>
    <td><%= tabledata[i].prediction %></td>
</tr>
<% } %>

我很好奇为什么这不起作用,但没有循环,它会起作用。

<tr>
    <td><%- tabledata["0"].storename %></td>
    <td><%- tabledata["0"].prediction %></td>
</tr>
<tr>
    <td><%- tabledata["1"].storename %></td>
    <td><%- tabledata["1"].prediction %></td>
</tr>
<tr>
    <td><%- tabledata["2"].storename %></td>
    <td><%- tabledata["3"].prediction %></td>
</tr>

我意识到即使没有循环,我也需要将数字作为字符串。但是,即使我将 i.toString() 放入循环中,它也会说存在类型错误。我还尝试在引号“”和单引号''中加上引号,但这也没有用。

另外,我看到的错误是语法错误,在我的部分视图中出现了意外的令牌 ILLEGAL。

有什么想法吗?

【问题讨论】:

  • 你检查过js开发者控制台,有什么错误吗?
  • 当我把 i 变成一个字符串时,我确实得到了一个类型错误。
  • tabledata 是一个对象,而不是一个数组。

标签: node.js express ejs embedded-javascript


【解决方案1】:

在你的循环中i 是一个整数,在另一个循环中它是一个字符串。

修改循环,使其强大并且可以工作(用单引号括起来)

【讨论】:

  • 对...但这是让我感到困惑的部分。我试过单引号,它也不起作用。当我将 i 转换为字符串时,它说有一个类型错误
  • 查找JS连接字符串,这样创建。还要 console.log 数组来检查你如何访问它是正确的,变量 i 也是你所期望的
  • Console.log() 是你的朋友
猜你喜欢
  • 1970-01-01
  • 2020-07-13
  • 2016-11-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 2012-09-27
  • 1970-01-01
相关资源
最近更新 更多