【问题标题】:Variable in ExpressJS not defined on Same-View FormExpressJS 中的变量未在相同视图表单上定义
【发布时间】:2019-04-27 00:43:35
【问题描述】:

我遇到了一个问题,即 Express/EJS 中的变量未定义,因此视图未加载。 在这里,如果已定义,我想在页面上显示一个名为 weather 的变量。相反,我收到错误“未定义天气”。我也试过'null'。顺便说一句,这只是开始。因为,当我提交表单时,天气变量将由输入中的值定义。所以那天晚上我试了试,没有成功。是否有更好的方法或者我想要完成它的方式有误?

下面显示了代码(我认为问题更多是关于 Express/EJS 而不是 Node):

<html>
  <head>

  </head>
  <body style="background-color:gray; color:black;">
    <h1>
      Hello World
    </h1>
    <form action="/form" method="post">
        <label for="team_name">Enter name: </label>
        <input id="team_name" type="text" name="name_field" value="Default name for team.">
        <input type="submit" value="OK">
    </form>

  <% if(weather !== 'undefined'){ %>
    <p><%= weather %></p>
  <% } %>

  <% if(error !== 'undefined'){ %>
    <p><%= error %></p>
  <% } %>

  </body>
</html> 

提前致谢。

【问题讨论】:

    标签: express ejs


    【解决方案1】:

    使用“locals”解决了问题。这就是代码的样子。我会尽快编辑答案并解释为什么当地人是它起作用的原因。

      <% if(locals.weather !== 'undefined'){ %>
        <p><%= locals.weather %></p>
      <% } %>
    
      <% if(locals.error !== 'undefined'){ %>
        <p><%= locals.error %></p>
      <% } %>
    

    【讨论】:

      【解决方案2】:

      如果你使用typeof,那会很好用

      <% if(typeof weather !== 'undefined'){ %>
          <p><%= weather %></p>
        <% } %>
      
        <% if(typeof error !== 'undefined'){ %>
          <p><%= error %></p>
        <% } %>
      

      【讨论】:

        猜你喜欢
        • 2016-09-27
        • 1970-01-01
        • 1970-01-01
        • 2018-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多