在ejs模板中使用jQuery

时间:2015-04-17 17:52:08

标签: jquery express parse-platform ejs

所以我在Parse BaaS上构建一个快速应用程序,并希望显示一个Bootstrap模式,具体取决于是否将错误消息传递到视图中。我尝试使用bootstrap中的简单.modal(" show")代码执行此操作。我在这个模板上有一个_header部分,其中包含一个指向jQuery和bootstrap的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调用应该在哪里生效。

2 个答案:

答案 0 :(得分:4)

此代码无法工作的原因是您尝试在服务器端运行客户端JS(即在<% %>内)。如果将$表达式放在脚本标记中,它应该可以工作。

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

答案 1 :(得分:0)

我必须做的帆/ ejs

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

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