奇怪的NodeJS与Express和EJS循环之谜

时间:2015-04-12 09:38:53

标签: node.js express ejs embedded-javascript

我有一些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。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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