【问题标题】:Modal showing individual items from paged AJAX list results, only works on first page显示分页 AJAX 列表结果中的单个项目的模式,仅适用于第一页
【发布时间】:2018-01-02 14:03:08
【问题描述】:

我有一个包含 100 多个成员列表的索引(例如),其中 AJAX 分页显示 20/页。分页和列表更新正常。

问题:

模式也可以正常工作但仅适用于第一页。如果我关闭“remote: true”,则模式在每个页面上都有效。

目前的代码:

controller/members_controller.rb

class MembersController < ApplicationController
  def index
    @members = Member.all.page(params[:page]).per(20)

    respond_to do |format|
      format.js
      format.html
    end
  end
end

views/members/index.html.erb

<table>
  <thead>
    <tr>
      <th>name</th>
      <th>modal button</th>
    </tr>
  </thead>
  <tbody id="members">
    <%= render @members %>
  </tbody>
</table>

<%= paginate @members, window: 2, remote: true %>

views/members/index.js.erb

$('#paginator').html('<%= j paginate @members %>');
$('#members').html('<%= j render partial: @members %>');

views/members/_member.html.erb

<tr>
  <td><%= member.name %></td>
  <td><button uk-toggle="target: <%= "#modal-member-#{member.id}" %>">OK</button></td>
</tr>

<div id="<%= "modal-member-#{member.id}" %>" uk-modal>
  <p>Some more random infos</p>
</div>

如果您需要更多信息,请尽管询问。我正在使用 UIkit3 框架。

【问题讨论】:

  • params[:page] ||= 1 将此代码行添加为控制器中的第一行,然后再试一次,让我知道它是否工作?

标签: javascript jquery ruby-on-rails ajax getuikit


【解决方案1】:
class MembersController < ApplicationController
  def index
    params[:page] ||= 1 #add this on line of code
    @members = Member.all.page(params[:page]).per(20)

    respond_to do |format|
      format.js
      format.html
    end
  end

结束

index.js.erb 的变化我认为你不需要在 js 文件中传递remote:true

$('#paginator').html('<%= j paginate(@members, remote: true) %>');
$('#members').html('<%= j(render partial: @members) %>');

【讨论】:

  • 在控制器中添加行并不能解决问题。至于js文件中的'remote: true',如果我不添加它们,在某些时候它会通过在链接中添加参数来加载页面。
  • 好的,js 中的 'remote:true' 部分现在可以在没有它的情况下使用。谢谢。仍然希望我能让那个模态的东西起作用。
  • 如果对您有帮助,请随时接受/投票。让我知道以获得进一步的指导
  • 我会支持该解决方案。到目前为止我没有。谢谢你的尝试。 :)
  • @dugzino 您能详细告诉我您在使用 modal 时遇到了什么问题吗?
猜你喜欢
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 2018-03-13
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多