[英]Rails: Populating modal with data
我知道这是一个古老的问题,但我无法解决。.我想以模态显示注释列表,特定于每个迭代。
内容has_many条评论,评论所属内容
@contents.each do |content|
content.title
button_to('read', category_modal_path(:comment_id => content.id), remote: true, :class=> 'modal-trigger2', 'data-target'=>'modal3')
end
控制者
def category_modal
@comments = Comment.online.where(content_id: params[:comment_id])
respond_to do |format|
format.js
end
情态
<div id="modal3" class="modal modal-fixed-footer">
...here I want show the list of comments
category_modal.js
$('#modal3').html(<%= j( render partial: 'shared/modal2', locals: {comments: @comments} )%> );
咖啡
$('.modal-trigger2').leanModal()
模态打开但没有数据..帮助将非常好..
一个小时的努力之后,我就能解决您的问题。 跟着这些步骤。
$('.modal-trigger2').leanModal()
。 它不再需要了。 在category_modal.js
粘贴以下代码
$('#modal3').html("<div href='#modal3' id='content_<%=params[:comment_id] %>'><%= j( render partial: 'shared/modal2', locals: {comments: @comments} )%></div>"); $('#content_<%=params[:comment_id]%>').leanModal(); $('#content_<%=params[:comment_id]%>').trigger('click');
您可能需要添加method: :get
在类别列表中如果您的路线不是post
类型,则
@contents.each do |content| content.title button_to('read', category_modal_path(:comment_id =>content.id), remote: true, :class=> 'modal-trigger2',method: :get) end
好吧,现在告诉我问题是什么。 基本上,这是leanModal
的混乱之leanModal
如果您使用了引导方式,那将不是问题。
基本上,每当我们在任何元素上调用leanModal
,它都会停止其默认行为, ie Click
从现在开始ie Click
So,然后单击它,然后打开弹出窗口,在其中显示被单击项的href
中提到的相应内容。
因此,当我调用$('.SomeClass').leanModal()
,它将为所有具有SomeClass
类的项添加click事件,并在有人单击它并显示内容时打开模式。
因此,在您的情况下,当您调用$('.modal-trigger2').leanModal()
它只是为所有Contents按钮添加了一个click事件,并在您单击任意一个时打开了弹出窗口。 它甚至没有向服务器发送ajax调用。 如您所知,最初在modal3
容器中没有任何内容,这就是它打开空模式的原因。
因此,现在我要做的是删除此调用,并将所有弹出逻辑移到category_modal.js
因此,每当单击Content时,它都会向服务器发送ajax请求。 在JS视图中,我正在做与您相同的事情,但是现在我在您的comments
周围添加了包装器,并根据您请求的content_id
将ID
设置为唯一。 之后,我在这个新创建的包装器div上调用leanModal
。 并触发它的click
事件,以便模式会自动显示。
聚苯乙烯
您不一定需要这种动态ID的东西,下面的代码也可以使用。
$('#modal3').html("<div href='#modal3' id='leanModalContainer'><%= j( render partial: 'shared/modal2', locals: {comments: @comments} )%></div>");
$('#leanModalContainer').leanModal();
$('#leanModalContainer').trigger('click');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.