所以我在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调用应该在哪里生效。
答案 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尚未加载。