创建动作后在rails中的模态窗口?

时间:2017-08-14 16:01:03

标签: javascript ruby-on-rails controller modal-dialog

所以,我想在我的网站上创建一个事件或用户后,或者在编辑之后显示模态消息,到目前为止我只知道如何使用flash来显示小消息,但我想知道如何使用模态窗口执行此操作,并且它们仅在使用控制器中的某个方法后显示,就像闪存消息一样,但在模态窗口中。

我调查过此事并找到了format.htmlformat.js 似乎可以做到这一点,但我有点失去了如何正确使用它们。

4 个答案:

答案 0 :(得分:0)

您可以使用@ObjectCreated之类的实例变量并在view.erb文件中访问它,并执行类似

的操作

<%if @objectCreated%>   为模态插入html <%end%>。

然后假设您的页面刷新使用dom加载的javascript函数来打开模态。

答案 1 :(得分:0)

假设您已经拥有模态html。

<% if flash[:event] == true %>
   <script>$(function() { $('#modal-id'}.modal('show'); });</script>
<% end %>

答案 2 :(得分:0)

这对我有用

如果你有部分模态然后在你的视图中渲染它:

function remove_pf() { remove_meta_box( 'formatdiv','post','normal' ); } add_action( 'admin_menu', 'remove_pf' );

然后:

<%= render 'your_partial' %>

答案 3 :(得分:0)

好的,试试完整的解决方案

第1步

创建部分layouts/_modal.html.erb

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="myModalLabel">Alert</h4>
            </div>
            <div class="modal-body">
               <div class="container"> 
                     <div class="row"> 
                          <div class="col-md-12"> 
                              <div class="alert-message <%="#{name}" %>-message">
                                  <p><%= msg %></p>
                                  <i class="icofont icofont-close"></i>
                              </div>
                          </div>
                      </div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

第2步

然后控制器创建或更新动作

flash[:success] = 'Category was successfully created.'
OR
flash[:danger] = 'Ooops! something went wrong'

第3步

layouts/application.html.erb

<% flash.each do |name, msg| %>
    <%= render partial: "layouts/modal" %>
<% end %>

第4步

在页脚上

<script>
    $('#myModal').modal('show')
</script>

或者你可以在flash部分或外部JS文件中使用它

这是经过测试并且运行良好

希望有所帮助