我在 ejs 模板中解析 JSON 数据时遇到错误

问题描述 投票:0回答:1

语法错误:编译 ejs 时,pages\data ejs 中出现意外的标记“)”。

我正在从 JSON 文件中获取具有两个字段问题和答案的 jsonData,并应用 if 条件来删除键为 favicon.ico 的任何问题

<!DOCTYPE html>
<html>

<head>
    <title>JSON Data Rendering</title>
</head>

<body>
    <h1>JSON Data</h1>
    <ul>
        <%= jsonData.forEach(item=> { %>
            <li><strong>QUESTION</strong>
                <%= if(item.question !='favicon.ico' ){ %>
                    <%= item.question %>, <strong>ANSWER</strong>
                        <%= item.answer %>
                            <%= } %>
            </li>
            <%= }); %>
    </ul>
</body>

</html>```


I WANT THAT THIS CODE HAS NO ERROR
javascript html node.js json ejs
1个回答
0
投票

您遇到的问题是由于 EJS 模板中的语法不正确造成的。您不能直接在 <%= %> 标签内使用 if 语句。相反,您应该在 <% %> 标签内使用 JavaScript 逻辑来有条件地呈现内容。这是 EJS 模板的更正版本:

<!DOCTYPE html>
<html>

<head>
    <title>JSON Data Rendering</title>
</head>

<body>
    <h1>JSON Data</h1>
    <ul>
        <% jsonData.forEach(item => { %>
            <% if (item.question !== 'favicon.ico') { %>
                <li><strong>QUESTION</strong> <%= item.question %>, <strong>ANSWER</strong> <%= item.answer %></li>
            <% } %>
        <% }); %>
    </ul>
</body>

</html>

在此版本中,我将 if 语句移出了 <%= %> 标签,并使用 <% %> 标签来包含 JavaScript 逻辑。这样,就可以正确评估条件,并根据 item.question 的值有条件地呈现内容。

© www.soinside.com 2019 - 2024. All rights reserved.