gpt4 book ai didi

javascript - Bootstrap 模式中的 Rails link_to

转载 作者:行者123 更新时间:2023-11-28 07:43:35 25 4
gpt4 key购买 nike

我已经对用户可以投票的一堆项目进行了每个循环。这些项目列在索引页面上,每个项目都是一个按钮,单击即可打开 Bootstrap 模式。我希望用户能够对模式中的项目进行投票,但是我很难实现这一点。这是我所拥有的:

$(function () {
$(".box-inner").click(function() {
$('#modal_title').empty();
id = $(this).data('id');
url = window.location.origin + '/my_items/' + id + '/get_modal_content';

$.ajax({
cache: false,
type: 'GET',
url: url,
data: id,
complete: function() {
$.getJSON(url, function (data) {
$('#modal_title').append(data.name);
$('#myModal').attr("data-id", id);
});
},
success: function(data)
{
$("#myModal").modal('show');
}
});
});
});

这是模式的样子:

<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
<h3 id="modal_title"></h3>
</div>
<div class="modal-body">
<div class="technique-info-section">
<h3>Info</h3>
<span class="thumbs-up">
<%= link_to like_my_item_path(**???**), method: :put, :remote => true do %>
<i class="fa fa-thumbs-o-up"></i>
<% end %>
</span>
<span class="thumbs-down">
<%= link_to dislike_my_item_path(**???**), method: :put, :remote => true do %>
<i class="fa fa-thumbs-o-down"></i>
<% end %>
</span>
</div>
</div>
</div>
</div>
</div>

这是 .each 循环的样子:

<% @techniques.each do |technique| %>
<li class="technique-box-outer">
<button class="box-inner" data-id="<%= technique.id %>">
<p class="technique-name"><%= technique.name %></p>
</button>
</li>
<% end %>

因此,在模式中的两个 link_to 路径中,如何让 link_to 辅助方法从 @techniques .each 循环中获得正确的项目,以便我可以将这些参数传递给我的 Controller ?

最佳答案

拥有它时就使用它,并保留它以供以后使用,如下所示:

<%= button_tag data: {id: technique.id, like_path: like_my_item_path(technique), dislike_path: dislike_my_item_path(technique) } do %>
<%= content_tag :p, technique.name, class: 'technique-name' %>
<% end %>

然后,在你的js中,你可以做这样的事情:

like_path = $(this).data('like-path');
dislike_path = $(this).data('dislike-path');

$("#myModal .thumbs-up a").attr('href', like_path)
$("#myModal .thumbs-down a").attr('href', dislike_path)

顺便说一句,您可能希望将点击绑定(bind)到更高级别的元素,以避免动态替换出现问题 ( like turbolinks, for example )。像这样的事情:

$(document).on 'click', '.box-inner', function() {}

关于javascript - Bootstrap 模式中的 Rails link_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27716565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com