我正在实现一个带有几个分页区域的仪表板的Rails 5站点。网站依赖的数据会定期从外部API更新。
当前正在执行的是页面刷新,将分页区域重置为第一页,而不是停留在所选页面上。
刷新代码为dashboard.js
:
var DashboardController = Paloma.controller('Dashboard',{
index: function(){
console.log("Una Paloma Dashboard");
setTimeout("refreshPage()", 5000);
}
});
function refreshPage(){
$.ajax({url: 'dashboard/refresh'});
setTimeout("refreshPage()",5000);
}
控制器包含
def index_queues
# wip_queues this builds the work in progress queues
@complete_all = Video.completed.where(user: current_user).order(updated_at: :desc)
@completed = @complete_all.page(params['completed_page']).per(PROGRESS_PAGINATE_PER_PAGE)
end
def refresh
index_queues
respond_to do |format|
format.js
end
end
我的refresh.js
是
$('#wip1').html('<%= escape_javascript render "wip1" %>')
$('#queue1paginator').html('<%= escape_javascript(paginate(@queue1, :remote => true, :param_name => "wip_q1").to_s) %>')
$('#wip2').html('<%= escape_javascript render "wip2" %>')
$('#queue2paginator').html('<%= escape_javascript(paginate(@queue2, :remote => true, :param_name => "wip_q2").to_s) %>')
$('#wip3').html('<%= escape_javascript render "wip3" %>')
$('#queue3paginator').html('<%= escape_javascript(paginate(@queue3, :remote => true, :param_name => "wip_q3").to_s) %>')
$('#completed').html('<%= escape_javascript render "completed" %>')
$('#completed_paginator').html('<%= escape_javascript(paginate(@completed, :remote => true, :param_name => "completed_page").to_s) %>')
wip和completed的部分相似,但参数进行了适当的更改。
<%= paginate @completed, remote: true, param_name: 'completed_page' %>
我在这里以及通过常规搜索都查看了很多问题和答案(以防万一,答案不对!),这让我有些沮丧。我什至尝试寻找Laravel和dotNet(颤抖)的答案。