【问题标题】:What is wrong with this syntax of my ejs code?我的 ejs 代码的这种语法有什么问题?
【发布时间】:2021-01-25 20:43:26
【问题描述】:

我正在尝试在 ejs 中使用 if/else,但每当我添加 else 部分时,就会出现错误。

<% if (user) {%>


<%=user.twitter.username%>

<%}%>

<%=else{%>

    Hi hi 
<%}%> 

错误提示:SyntaxError: Unexpected token else in C:\Users\Adetona\Dropbox\meme.africa\views\pages\index.ejs while compiling ejs

每当我删除 else 部分时,一切正常。

我可能做错了什么?

【问题讨论】:

  • 它是&lt;%=else{。你不能使用= 符号

标签: node.js express ejs


【解决方案1】:

我相信您需要将else 与前一个条件块的末尾配对,所以:

<% if (user) { %>
  ...
<% } else { %>
  ...
<% } %> 

【讨论】:

  • 完美运行。谢谢。
【解决方案2】:

&lt;% %&gt; 表示你正在做一个表达式或声明一个变量等...

&lt;%- %&gt; 文本将被打印但不会被转义,你仍然可以像 (a &gt; b) ? a : b; 那样在里面进行计算

&lt;%= %&gt; 将转义 html 假设您正在获取用户输入并将其打印在屏幕上,然后您希望将其转义。

【讨论】:

    【解决方案3】:

    ejs 视图引擎需要了解它正在编译一个 if-else 块,因此请尝试如下所示编写它

    如下图所示放置花括号并适当标记。

    if { 
    // if block code statements 
    
    } else {
    //else block code statements
    }
    

    原来如此

    <% if { %>
    // if block code statements 
    
    <% } else { %>
    //else block code statements
    <% } %>
    

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2021-03-18
      • 2017-04-20
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多