我对如何制作弹出窗口(模式)来告诉用户 Controller 操作后发生的事情感到困惑。这应该类似于在 redirect_to
或 render
中使用的 flash[:notice/alert]
函数。
我发现了一个名为“服务器生成的弹出窗口”的 gem ,但我不太明白如何使用它或它是否适合我的情况。
我也尝试过使用 magnific-popup 和 bootstrap-popup,但它们似乎更有可能通过用户的操作(单击按钮、单击链接)生成弹出窗口/模式。我尝试通过 render :template
使用它们来创建模式,但没有成功。
我想要做的实际上与flash[:notice/alert]
相同,但将其替换为不需要用户输入的模式。我应该怎么办?我的想法是:
通过
add_flash_types :modal
创建新的 Flash 类型用一些代码替换它的行为以 Bootstrap 模式(应该比华丽的弹出窗口更容易?)
在
render
或redirect_to
中调用它
但是第二步该怎么做呢?
谢谢。
最佳答案
你能尝试一下吗
render js: 'alert("popup")'
这样您就可以从服务器触发模式弹出窗口
另一种方法是自己渲染闪光灯。在您的应用程序布局中,您可以执行以下操作:
<% flash.each do |k, v| %>
<% if k == :mocal_alert %>
<script>alert("popup");</script>
<% else %>
<# how ever you are rendering the default flashes %>
<div id="<%= k %>"><%= v %></div>
<% end %>
<% end %>
显然用更好的东西替换alert("popup")
。
关于javascript - Rails - 从 Controller 生成类似模态的 "flash",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555726/