我可以使用条件语句与EJS模板(在JMVC中)?
如果是的话,语法是什么? 我的目标是在不止一个的时候给“评论”这个词添加一个“s”。 在JMVC应用程序的jQuery.ejs模板中。 下面的rest。 我找不到任何条件的文档…
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
对于那些偶然发现的问题,你也可以在条件语句中使用ejs params / props:
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 <% } %>
如果条件结构正确,条件工作,我碰到这个问题,并计算出来。
对于条件, else
之前的标签必须与前一个的结束标签配对,否则这些语句将单独评估并产生错误。
错误!
<% if(true){ %> <h1>foo</h1> <% } %> <% else{ %> <h1>bar</h1> <% } %>
正确
<% if(true){ %> <h1>foo</h1> <% } else{ %> <h1>bar</h1> <% } %>
希望这有助于。
EJS似乎行为有所不同,取决于您是否使用{}符号:
我已经检查并且按照您的预期评估以下条件:
<%if (3==3) {%> TEXT PRINTED <%}%> <%if (3==4) {%> TEXT NOT PRINTED <%}%>
而这一个不:
<%if (3==3) %> TEXT PRINTED <% %> <%if (3==4) %> TEXT PRINTED <% %>
else if
语法,你也可以使用else if
:
<% if (x === 1) { %> <p>Hello world!</p> <% } else if (x === 2) { %> <p>Hi earth!</p> <% } else { %> <p>Hey terra!</p> <% } %>
是的,你可以使用条件语句与EJS一样,如果其他,三元操作符,甚至开关的情况下也
例如
三元运算符 : <%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
<%- 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; } %>