我该如何在ejs中使用if语句?

20
我有一个页面,其中使用foreach循环并显示了一些类似于这样的图片。
<% imgs.forEach(function(img) { %>
      <img src="uploads/<%=user.username%>/screenshots/<%= img %>">
 <% }); %>

我想写一个if语句,以防没有照片要展示时,显示以下信息:

"未上传照片"

4个回答

36

像这样的:

<% if(imgs.length > 0){ %>
    <% imgs.forEach(function(img) { %>
        <img src="uploads/<%=user.username%>/screenshots/<%= img %>">
    <% }); %>
<% } else{ %>  
    <p>no photos uploaded</p>
<% } %>

参考资料


这个很好用,但是ejs支持嵌套的if else循环吗? - xetryDcoder
@xetryDcoder 我没有尝试过,但它应该像单个 if-else 一样工作。如果你遇到任何问题,请告诉我。 - Shaharyar

4
缩写版本是正确的,但它确实存在语法错误。
<%= role === 'admin' ? 'Super Admin' : 'Admin' %>

Or

<% if(role === 'admin'){ %>
    <p>Super Admin</p>
<% } else{ %>
    <p>Admin</p>
<% } %>

2
是的,这里是简写版本: <%= role == 'A' ? '超级管理员' : '管理员' %>

实际上应该是<%= role == 'A' ? '超级管理员' : '管理员' %>,只有一个 ?。你的代码会导致语法错误。 - user16328828
我的错,是打错了字。。谢谢 - Abderrahim Soubai-Elidrisi

0
你是指像这样的东西吗?
<% if (kindOfDay === "Sarturday" || kindOfDay === "Sunday") { %>
  <h1 style="color: green;"><%= kindOfDay %> Todo List</h1>
<% } else { %>
  <h1 style="color: blue;"><%= kindOfDay %> Todo List</h1>
<% } %>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接