【问题标题】:How to put modals in partials?如何将模态放入部分中?
【发布时间】:2012-05-29 13:56:55
【问题描述】:

我不知道如何将模态框放入部分中。请帮帮我!

我有按钮:

 <a class="btn btn-large" data-toggle="modal" href="#show_me_modal"
 onclick="printpage()">Name of button<sup>TM</sup> message in action</a>

和 div 模态:

    <div class="modal hide fade" id="show_me_modal">
     <div class="modal-header">
      <a class="close" data-dismiss="modal">×</a>
         </div>
      <div class="modal-body">
      <p>some text</p>

      <ul class="media-grid">
        <%= image_tag("/images/pic02.png") %>
      </ul>

    </div>

    <div class="modal-footer">
      <b><%= link_to "#", '#' %></b>          
    </div>
  </div>

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap modal-dialog partial-views partial


    【解决方案1】:

    我为一个项目创建了ModalHelper。它有助于动态创建模态和指向它们的链接。希望对你有帮助:

    帮助代码:

    创建文件 app/helpers/modal_helper.rb

    module ModalHelper
        def modal(css_id, header_text, hidden = true, &block)
            content_tag(:div, :class => 'modal', :id => css_id, :style => ("display:none;" if hidden) ) do
                concat modal_header(header_text)
                concat modal_body(&block)
            end
        end
    
        def modal_button(link_text, href)
            modal_caller link_text, href, :button
        end
    
        def modal_link(link_text, href)
            modal_caller link_text, href
        end
    
        private
    
        def modal_caller(link_text, href, type = nil)
            options = { :"data-toggle" => "modal" }
            options.merge!({ :class => "btn" }) if type == :button
            link_to link_text, "#" + href, options
        end
    
        def modal_header(header_text)
            content_tag(:div, :class => 'modal-header') do
                concat content_tag(:button, 'x', :class => 'close', :"data-dismiss" => 'modal')
                concat content_tag(:h3, header_text)
            end
        end
    
        def modal_body
            content_tag(:div, :class => 'modal-body') do
                yield
            end     
        end 
    end
    

    模态链接:

    生成指向您的模式的链接。

    <%= modal_link('Sign up', "myModal") %>
    

    渲染到模态:

    包含您要呈现的代码。

    <%= modal('myModal', 'Registration') do %>
        <% render 'devise/registrations/register' %>
    <% end %>
    

    【讨论】:

    • 谢谢你的帮助,但是modal_link是什么意思呢?我应该写这个 还是什么?当我将您的代码(呈现为模态)未定义方法“模态”时,我应该将模态 div 放入 regitration 表单是吗?
    • modal_link 生成模型的链接(它在源代码中有 link_to)。检查modal_caller 方法以了解我在说什么。方法 modal 是 Helper 方法,它应该可以在您的视图中访问,在 Rails 3 中,Helper 会自动包含在内,并且可以在所有视图中访问。
    • 你读过我的代码吗?? modal_caller 在那里。你创建了 modal_helper.rb 吗?
    • 您好!现在,我无法理解您的代码,但我希望它不会被太多需要。当我使用您的代码时,它仅向我显示带有标头注册的模态,但我在设计/注册中创建了部分。你能告诉我为什么吗?
    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多