【问题标题】:conditional statement is not working in ejs条件语句在 ejs 中不起作用
【发布时间】:2020-01-14 00:31:55
【问题描述】:

您好,我想在 ejs 中应用条件语句,但它在我的代码中不起作用“我希望当我选择特定值(不使用运输)时,按钮显示否则不显示,但仅显示 - (其他条件) 在开发人员工具中的每个下拉列表中的选择上",它显示了像 https://ibb.co/60ZWcXh 这样的条件语句代码,它没有采用

条件语句

  <%if (locals.students == "noTransportation") { %>
       <button type="button" class="btn btn-primary pull-right" onclick="" id="">
         Migrate to Applicants
       </button>
     <%} else { %>
       -
     <% } %>

完成students_list.ejs

  <select class="form-control changeDropDown" id="transportation">
             <option value="applications">Applications</option>
             <option value="transportation">Using Transportation</option>
             <option value="noTransportation">Not Using Transportation</option>
             <option value="All">All</option>

         </select>

     <%if (locals.students == "noTransportation") { %>
       <button type="button" class="btn btn-primary pull-right" onclick="" id="">
         Migrate to Applicants
       </button>
     <%} else { %>
       -
     <% } %>

控制器:

  in controller the code in comments ////data migration code//// is for this conditional statement but its not working 

      paste.ofcode.org/RGu9t7Fm3uNPNKiczNP2p9

我该如何解决这个问题

【问题讨论】:

  • 您是否尝试在发送之前在您的 JS 代码中 console.log locals.students
  • js代码中的nthing
  • @matrixersp 它说未定义
  • 这就是为什么它在else块中显示代码的原因,如果你想在if块中显示代码,你需要给locals.students值“noTransportation”
  • 完成,但我希望当我选择不使用交通工具时,按钮会显示,否则不会显示,但每个选择都会显示按钮

标签: node.js express ejs node-modules


【解决方案1】:

如果您将console.log(locals.students) 放在if 条件的正上方,您将看到(在node 的终端中)locals.students 的值不同于noTransportation。像这样添加它:

 <select class="form-control changeDropDown" id="transportation">
             <option value="applications">Applications</option>
             <option value="transportation">Using Transportation</option>
             <option value="noTransportation">Not Using Transportation</option>
             <option value="All">All</option>

         </select>

     <% console.log("====================", locals.students) %>
     <%if (locals.students == "noTransportation") { %>
       <button type="button" class="btn btn-primary pull-right" onclick="" id="">
         Migrate to Applicants
       </button>
     <%} else { %>
       -
     <% } %>

如果您想查看if 确实正常工作,您可以暂时 代替console.log(....)

<% locals.students = "noTransportation" %>

更新:

没有快速简便的解决方案可以适合您目前所拥有的 stackoverflow 的答案。

一些想法供您遵循:

  • &lt;% .. %&gt; 中的代码在服务器上执行。
  • 选择框的选择变化在浏览器中执行
  • 为了在进行更改时显示按钮,您可以:
    • 添加一个客户端 js 函数以在 $("#transportation") 更改时隐藏/显示按钮 - 但仅此一项就会在您的数据库中保存 nothing
    • $("#transportation")发生变化时,发起服务器请求并重绘整个页面,这样你的ejs就可以被执行了。

【讨论】:

  • 我希望当我选择不使用交通工具时,按钮会显示,否则不会显示,但通过添加以下内容在每个选择上显示按钮:
  • 在你的控制器中,你有res.render("/students_list", { students: students }); - students var 没有在任何地方设置。
  • 我是 node 新手,请告诉我该怎么做
  • 现在我写了它但它不工作并且没有显示任何错误 paste.ofcode.org/zZ8uhjb4FkPjfec9Tkcezy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2022-07-23
  • 1970-01-01
  • 2011-01-08
  • 2011-12-04
  • 2012-08-15
相关资源
最近更新 更多