我遇到与此问题Ajax callbacks not working with Rails 3.0.5 and jQuery 1.5.1相同的问题。我不明白答案,但是。我找到了导致问题的原因但不确定原因是什么以及如何解决。我正在使用 Kaminari gem。
请帮帮我。
在我的视图中
<div id="paginator">
<%= paginate @user, params: {id: nil, pgsz: 20}, remote: true %>
</div>
在我的控制器:
中 @user = Kaminari.paginate_array(@properties, total_count: @search_result.total_count).page(@pg).per(@pgsz)
respond_to do |format|
format.js
format.html
end
在我的 Show.js.erb
中$('#list').html("<%=j (render 'search_result_list') %>");
$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");
在我的另一个 JS 文件中,我监视ajax
$('#paginator')
.on("ajax:send", function () {
// Run a spinner
console.log("=====BEfore SEND");
})
.on("ajax:complete", function (e, data, status, xhr) {
// Stop the spinner
console.log("=====Afte SEND");
})
所以我发现$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");
这一行导致不回调ajax:successs or ajax:complete
。但是,如果我将$('#paginator').html
修改为 $('#paginator').append
回调,但它不是我需要的。
更新:
刚刚发现它不仅导致$('#paginator').html("<%=j (paginate(@user, params: {id: nil, pgsz: 20}, remote: true).to_s) %>");
,而且只是将其修改为$('#paginator').html("Hey");
也不会导致回调。
知道为什么会这样吗?
答案 0 :(得分:0)
尝试更改控制器中unchecked
的顺序。
format
我有类似的问题,最后添加@user = Kaminari.paginate_array(@properties, total_count: @search_result.total_count).page(@pg).per(@pgsz)
respond_to do |format|
format.html
format.js
end
有帮助。在html之后我也有format.js
,不确定你是否需要这个。