我正在使用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的人来说是最好的问题,因为它非常普遍,我在这篇文章中添加自己的代码是没有意义的 - 如果不同意请注释!
答案 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]中)我将非常感激