条件语句在ejs中不起作用

时间:2019-09-12 07:12:28

标签: node.js express ejs node-modules

您好,我想在ejs中应用条件语句,但在我的代码中不起作用“我希望当我选择一个特定值(不使用运输方式)时,buton显示否则不显示,而仅显示-(其他条件)在开发人员工具中的“从下拉列表中进行的每个选择”中,都显示了条件语句代码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

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

如果将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" %>

更新

对于您当前拥有的堆栈溢出问题,没有快速简便的解决方案可以解决。

一些想法供您遵循:

  • <% .. %>中的代码在服务器上执行。
  • 在浏览器中执行选择框的选择更改
  • 为了在进行更改时使按钮显示,您可以:
    • 添加一个客户端js函数,以在$("#transportation")发生更改时隐藏/显示按钮-但这仅会节省一无所有在您的数据库中
    • 发出服务器请求,并在$("#transportation")更改时重新绘制整个页面,以便可以执行ejs