问题描述
app/controllers/dashboards_controller.rb
class DashboardsController < ApplicationController
def admin
if request.xhr?
if params[:section] == 'sales_bar'
@sales_bar = current_user.sales_bar.to_json
elsif params[:section] == 'orders_bar'
@orders_bar = current_user.orders_bar.to_json
else
@sales_bar = current_user.sales_bar.to_json
@orders_bar = current_user.orders_bar.to_json
end
end
respond_to do |format|
format.js
format.html
end
end
end
app/views/dashboards/admin.html.slim
.charts
#sales-bar-section
.ui.segment
.head
.content
.ui.inverted.dimmer.active
.ui.indeterminate.small.text.loader = 'Loading'
#orders-bar-section
.ui.segment
.head
.content
.ui.inverted.dimmer.active
.ui.indeterminate.small.text.loader = 'Loading'
javascript:
$.ajax({
url: "#{admin_dashboard_path}",// dashboards_controller#admin as js
dataType: 'script',type: 'GET',data: {
month: "#{Date.today.to_s}"
}
}).success(function () {
$('.ui.dimmer').removeClass('active');
}).error(function () {
$('.ui.dimmer').removeClass('active');
show_ajax_error("Error loading data - Please refresh page again.");
});
app/views/dashboards/admin.js.erb
<% if params[:section] == 'orders_bar' %>
$("#orders-bar-section").html("<%= escape_javascript(render partial: 'dashboards/orders_bar',locals: { widget_data: @orders_bar,url: admin_dashboard_path }).html_safe %>");
<% elsif params[:section] == 'sales_bar' %>
$("#sales-bar-section").html("<%= escape_javascript(render partial: 'dashboards/sales_bar',locals: { widget_data: @sales_bar,url: admin_dashboard_path }).html_safe %>");
<% else %>
$("#orders-bar-section").html("<%= escape_javascript(render partial: 'dashboards/orders_bar',url: admin_dashboard_path }).html_safe %>");
$("#sales-bar-section").html("<%= escape_javascript(render partial: 'dashboards/sales_bar',url: admin_dashboard_path }).html_safe %>");
<% end %>
信息:这些部分加载在标签内的“admin.html.slim”上的ajax请求上。
(对于 admin.html.slim 的 turbolink/non-turbolink 访问) 当加载 admin.html.slim 时,$.ajax 方法被调用两次,直接在标签内部。为什么它被调用了两次?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)