语法错误:编译 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
您遇到的问题是由于 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 的值有条件地呈现内容。