如果是,语法是什么?我的目标是在有多个评论时在“评论”一词前面加上一个“s”。在 JMVC 应用程序的 jQuery.ejs 模板中。以下休息。我找不到任何条件文档...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
如果是,语法是什么?我的目标是在有多个评论时在“评论”一词前面加上一个“s”。在 JMVC 应用程序的 jQuery.ejs 模板中。以下休息。我找不到任何条件文档...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
如果条件结构正确,条件就可以工作,我遇到了这个问题并想通了。
对于条件句,之前的标签else
必须与前一个的结束标签配对,if
否则语句将单独评估并产生错误。
错误!
<% if(true){ %>
<h1>foo</h1>
<% } %>
<% else{ %>
<h1>bar</h1>
<% } %>
正确的
<% if(true){ %>
<h1>foo</h1>
<% } else{ %>
<h1>bar</h1>
<% } %>
希望这有帮助。
对于其他偶然发现的人,您还可以在条件语句中使用 ejs 参数/道具:
recipes.js 文件:
app.get("/recipes", function(req, res) {
res.render("recipes.ejs", {
recipes: recipes
});
});
recipes.ejs 文件:
<%if (recipes.length > 0) { %>
// Do something with more than 1 recipe
<% } %>
是的,您可以在 EJS 中使用条件语句,例如 if else 、三元运算符甚至 switch case
例如
三元运算符:
<%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
开关盒
<% switch (role) {
case 'Admin' : %>
Super Admin
<% break;
case 'eventAdmin' : %>
Event Admin
<% break;
case 'subAdmin' : %>
Sub Admin
<% break;
} %>
根据您是否使用 { } 符号,EJS 的行为似乎有所不同:
我已经检查并按照您的预期评估了以下条件:
<%if (3==3) {%> TEXT PRINTED <%}%>
<%if (3==4) {%> TEXT NOT PRINTED <%}%>
而这个没有:
<%if (3==3) %> TEXT PRINTED <% %>
<%if (3==4) %> TEXT PRINTED <% %>
您还可以使用else if
语法:
<% if (x === 1) { %>
<p>Hello world!</p>
<% } else if (x === 2) { %>
<p>Hi earth!</p>
<% } else { %>
<p>Hey terra!</p>
<% } %>
我知道这是一个有点晚的答案,
您可以在 ejs 中使用 if 和 else 语句,如下所示
<% if (something) { %>
// Then do some operation
<% } else { %>
// Then do some operation
<% } %>
但还有一点我要强调的是,如果你这样使用代码,
<% if (something) { %>
// Then do some operation
<% } %>
<% else { %>
// Then do some operation
<% } %>
它会产生错误。
希望这对某人有帮助
只要使代码更短,您就可以使用 ES6 功能。同样的事情可以写成
app.get("/recipes", (req, res) => {
res.render("recipes.ejs", {
recipes
});
});
并且Template可以被渲染为相同的!
<%if (recipes.length > 0) { %>
// Do something with more than 1 recipe
<% } %>
例如,将 javascript(for 循环)嵌入到我们的 ejs 模板中的一个简单而通用的规则,我们可以遵循以下规则:
首先在 ejs 模板中编写您的 javascript 代码,就像您通常在 javascript 中编写的那样。
将 <% 放在开头,将 %> 放在每个纯 JavaScript 行的末尾。
例如:
if (num%2===0) {
<p> this is an even number</p>
} else {
<p> this is an odd number</p>
}
所以现在我们必须把 ejs 语法放在每一行:
<% if (num%2===0) {%>
<p> this is an even number</p>
<%} else { %>
<p> this is an odd number</p>
<%}%>