will_paginate Api发送per_page项目数

时间:2016-03-29 06:27:57

标签: jquery ruby-on-rails

我正在实施具有产品型号的电子商务应用程序,它包含许多产品,我想在每个页面显示有限数量的产品在应用程序中,如果我们滚动页面,它应该加载剩余的产品,如亚马逊或flipkart应用程序。如何在rails中实现这一目标?

我添加了will_paginate,它将显示在will_paginate per_page中指定的前n个数字项。如何显示剩余的项目?我怎样才能在api中处理这个问题?

1 个答案:

答案 0 :(得分:1)

您可以添加kaminari gem或will_paginate gem。我认为active_admin在其中使用kaminari。

如果你跟着那些文档(两个宝石的行为相同) 它在视图上添加页码。如果您想自动加载下一个内容,这是一个想法,您必须谷歌了解您将如何实现。

在屏幕上显示第一个x元素,然后显示带有加载图标的div。添加js pagescroll事件并检查此div是否在屏幕中可见。如果是,请发送下一个元素的ajax请求。成功之后 - 完全ajax请求删除此加载图标div并追加结果,最后再添加加载div,以便在页面上滚动它再次发送ajax请求。

这里是jquery sudo代码(注意你需要检查和编辑代码这只是sudo代码)

page = 0

$(window).unbind("scroll")
handel_scrolling = function(){

if($(".loading").offset()){
    //this if checks whether loading div appears in screen or not
    if($(".loading").offset().top < $(window).scrollTop() + $(window).outerHeight()) {
        page++
        url = "myurl?page=" + page

        $.ajax({
            url: url,
            success: function (data) {
        ele = $(".loading")
                $(".loading").remove()
                $(".list").append(data)
        $(".dashboard-list").append(ele)
            },
            error: function (data) {
                console.log("something went wrong")
            }
        })
    }}
}
$(window).scroll(function(event) {
handel_scrolling()
});