Как поместить модалы в частичные?
0 skrypalyk [2012-05-29 16:56:00]
Я не могу понять, как поставить модальности в частичные. Помоги мне, пожалуйста !
У меня есть кнопка:
<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 modal:
<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 ответ
2 Решение thesis [2012-05-29 17:15:00]
Я создал ModalHelper
для одного проекта. Это помогает динамически создавать модалы и ссылки на них. Надеюсь, это поможет вам:
Код помощника:
Создать файл-приложение/помощники /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 %>