使用AJAX部分分页

时间:2013-01-28 20:43:41

标签: ruby-on-rails ajax view partial kaminari

之前我曾问过这个问题,但我想我已经弄清了问题所在。

我有一个页面,其中包含一个表格div。我使用AJAX调用来获取一个表(不是局部的,它只是另一个table.html.erb,在其控制器中有自己的方法)。

在这个table.html.erb中,我遵循了关于AJAX分页的Kaminari指南。如果我已经有一个AJAX调用,为什么要使用另一个AJAX调用呢?

因为,如果我点击分页链接,Kaminari会将链接分页到整个页面,而不是div中。

因此,为什么我在一个名为table div的AJAX中使用partial。但是,我现在无法转到下一页或任何其他页面。在我的控制台中,正在进行正确的查询。当我实际右键单击并在单独的选项卡中打开页面时,我可以更改链接(仅当我禁用应用程序和引导程序布局的呈现时)。

刚才提到的一个原因,另一个我怀疑,是因为我在另一个AJAX调用视图中有部分,如果我在点击另一个后没有对表进行AJAX调用,那么表实际上不会更新Kaminari的页面。

总结:

index.html.erb

<div id="table"><div>

<script> $.ajax({
        url: "http://localhost:3000/request/table",
        type: "GET",
        success: function(data) {
            $("#table").html(data);
        }
    });
</script>

show.html.erb

<table id="table">
    <thead>
        <tr>
            <th> Boop! </th>
        </tr>
    </thead>
    <tbody id="items">
    <% render @items %>
    </tbody>
    <div id="paginator">
        <%=  paginate @items, :remote => true %>
        <%= page_entries_info @items, :remote => true %>
    </div>
 </table>

<script>
    $('#analytics').html('<%= escape_javascript render(@items) %>');
    $('#paginator').html('<%= escape_javascript(paginate(@items, :remote => true).to_s) %>');
</script>

partial:_item.html.erb

<tr>
<td> item.name </td>
<td> item.date </td>
</tr>

总之,

我可以在单独的标签页中打开分页链接(1,2,3,... Next,Previous)或作为整页网址。 我无法通过点击分页链接来更新表格。

1 个答案:

答案 0 :(得分:0)

当您右键单击并打开链接时,它正在请求“html”响应。

点击:remote =&gt;真正的链接,它要求“js”响应......

您需要使用Javascript创建一个(我假设它的“索引”动作?)index.js.erb视图,用新数据“更新”#table。