【发布时间】:2019-02-08 10:08:54
【问题描述】:
我正在开发一个 Rails 应用程序。在我必须弹出一个模态的用例中。问题是模态没有弹出。如果我使部分文件正常,那么模态显示为我不想要的正常页面。自从一个星期以来,我正在尝试这个小好消息,如果我将 _load_users.html.erb 作为 load_users.html.erb ,它至少会显示模态,但我希望部分文件作为模态弹出。
我使用了一个触发 Ajax 的链接
// 团队控制器
def load_users
@user = User.all
respond_to do |format|
format.html
format.js
end
end
//index.html.erb
<%= link_to 'link', load_users_teams_path, remote: true %>
<div id="modal-window" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content"></div>
</div>
</div>
//_load_users.html.erb
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
**here comes whatever you want to show!**
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
//load_users.js.erb
$("#modal-window").html("<%= escape_javascript( render 'load_users' ) %>");
$("#modal-window").modal()
它应该在点击链接时显示一个弹出模式。
【问题讨论】:
-
尝试将
format: :js作为选项添加到您的 load_users_teams_path 调用中,这应该会让 rails 寻找要加载的 js.erb 文件。您可能还需要在js.erb文件中将其更改为render partial: 'load_users',不确定... -
我照你说的做了,但我收到以下错误......安全警告:另一个站点上的嵌入式
-
不确定是什么原因造成的。也许删除 escape_javascript 调用并将渲染留在那里?这是我唯一的想法,否则我会告诉你查找该错误
-
实际上,您知道这可能是在更改预先存在的 DOM 节点上的 HTML。您可以尝试使用 append 之类的方法,它可能会有所帮助
标签: jquery ruby-on-rails ruby