【问题标题】:Using jQuery inside ejs template在 ejs 模板中使用 jQuery
【发布时间】:2015-06-24 17:16:36
【问题描述】:

所以我正在 Parse BaaS 上构建一个快速应用程序,并希望根据是否将错误消息传递到视图来显示 Bootstrap 模式。我正在尝试使用引导程序中的简单 .modal("show") 代码来执行此操作。我在这个模板上有一个 _header 部分,其中包括指向 jQuery 和引导程序 js 的链接。但是,此模板在运行时会说 $ 未定义。这是嵌入的js。

<div class="modal-body">
                  <% if(registerError) { %>
                    <div class="error"><%= registerError %></div>
                      <% $('#registerModal').modal('show') %>   
                  <% } %>
                <form class="form-inline login-form" method='post' action='/signup'>
                  <div class="error bg-danger" style="display:none"></div>
                  <input type="email" id="register-username" name="registerEmail" class="form-control" placeholder="Email" />
                  <button type="submit" id="login" class="btn btn-primary">Next</button>
                </form>

              </div>

当我取出模态调用时,模板会正确显示错误,但这需要我手动导航到模态。如果出现错误,我希望在模板加载时呈现此模式。我对 ejs 很陌生,并且通常表达出来,所以我不确定 jquery 调用应该放在哪里。

【问题讨论】:

    标签: jquery express parse-platform ejs


    【解决方案1】:

    在sails/ejs 中我必须这样做

    <script>
        window.onload = function () {
            $('#registerModal').modal('show');
        }
    </script>
    

    否则,调用 $() 时,JQuery 尚未加载。

    【讨论】:

      【解决方案2】:

      此代码不起作用的原因是因为您试图在服务器端运行客户端 JS(即在 &lt;% %&gt; 内)。如果您将$ 表达式放在脚本标记中,它应该可以工作。

      <% if(registerError) { %>
          <div class="error"><%= registerError %></div>
          <script type='text/javascript'>$('#registerModal').modal('show');</script>   
      <% } %>
      

      【讨论】:

        猜你喜欢
        • 2021-04-11
        • 2015-02-21
        • 1970-01-01
        • 2016-08-10
        • 2017-09-02
        • 1970-01-01
        • 2020-12-25
        • 2012-04-28
        • 1970-01-01
        相关资源
        最近更新 更多