Ajax追加问题

Issue with Ajax Appending

本文关键字:问题 追加 Ajax      更新时间:2023-09-26

我有一个分页的评论模型,我希望每当单击下一个按钮时,评论都能在同一页面上加载更多评论。我对如何着手做这件事有点想法,但有人能建议我如何着手做吗。我已经有一些代码了。

对于评论部分,而不是渲染,我认为它可能必须寻找微帖子及其id,才能找到合适的评论来添加,但我不确定如何将这些联系在一起。

分页JS

$(function() {
  $("#CommentPagin a").live("click", function() {
    $.getScript(this.href);
    return false;
  });
});

显示JS

$("#cc").append('<%= escape_javascript(render :partial => "users/comments" )%>');

评论部分

<div id='comments'>
  <% comments = micropost.comments.paginate(:per_page => 5, :page => params[:page]) %>
  <div id="CommentPagin">
  <span class="CommentArrowIcon"></span>
  <%= will_paginate comments, :page_links => false , :class =>"pagination" %>
  </div>
<%= render 'users/comments' %>
</div>

注释渲染部分

<div id="cc">
<% comments = micropost.comments.paginate(:per_page => 5, :page => params[:page]) %>
<%= render comments %>
</div>

用户控制器

  def show
    @user = User.find(params[:id])
    @school = School.find(params[:id])
    @comment = Comment.find(params[:id])
    @micropost = Micropost.new
    @comment = Comment.new
    @comment = @micropost.comments.build(params[:comment])
    @microposts = @user.microposts.order('created_at DESC').paginate(:per_page => 10, :page => params[:page])
      respond_to do |format|
      format.html
      format.js
     end
  end

我对铁轨有点生疏,所以这是一个有点通用的答案。

我将从一个路由/操作加载下n个注释,该路由/操作将您的注释渲染部分渲染为HTML

只需将其视为您从自己的API请求资产并使用它们来更新页面。

分页JS

/**
* jQuery 1.7+
* use .delegate() for older versions.
**/
$("#CommentPagin").on('click', 'a', function(e){
    // Get data from server - make sure url has params for per_page and page.
    $.get($(this).attr('href'), function(data){
        // refresh client with data
        $("#cc").append(data);
    });
});