jquery.pageless刮

时间:2013-03-25 16:36:23

标签: javascript jquery ruby-on-rails infinite-scroll

我正在使用jquery.pageless插件。它通过抓取控制器中的paginate方法生成的参数来实现无限滚动。

我正在尝试将自定义参数(例如用户ID)传递给我的无页面功能。这在我在js.erb中加载函数时有效,如下所示:

$('#relationship_list').pageless({ totalPages: "<%= @reviews.count %>"/5+1
                       , url: '/reviews'
                       , params: {id: "<%= params[:id] %>"}
                       , loaderMsg: "loading"
                       });

这可以按预期工作。但是,我不想远程加载我的页面,所以我需要找到一种方法在javascript中实现这一点,不引人注目(我不想直接在我的视图中集成脚本,我想将代码放入的application.js)。

这意味着我必须找到一种'翻译'代码的方法,例如&lt;%= params =&gt;到无页面调用可以从控制器读取的变量。但是怎么样?我真的不知道该怎么做。

我认为这对于那些已经知道jquery.pageless的人来说是最好的问题,因为它非常普遍,我在这篇文章中添加自己的代码是没有意义的 - 如果不同意请注释!

1 个答案:

答案 0 :(得分:0)

这是我选择的解决方案。关于这是否适合的方法的任何提示都是受欢迎的:

if($('#relationship_list').length){
    $.ajax({
            type: 'GET',
            url: '/users/'+$('.user_info').attr("id"),
            dataType: 'json',
            success: function(response){
                $('#relationship_list').pageless({ url: '/reviews'
                                , totalPages: response["count"]/5+1
                                , loaderMsg: "loading"
                                , params: {id: response["id"]}
                });
            }
    });     
}

这样做是对控制器进行ajax调用,并使用关键参数渲染json param。然后我使用这些参数来实现.pageless函数。

请注意,为了获取原始用户ID,我实际上有一个包含用户ID的div,因此我从页面中获取该ID。用户ID不是国家机密,但如果有人有关于如何获取html参数的提示(ID在我的rails代码中的params [:id]中)我将非常感激