我有一个页面,我试图在选项卡上显示多个 NVD3 图表。我在 NVD3 网站上看到他们提前存储了所有图表名称,但我不确定我应该如何做到这一点。
我有存储在数据库中的图形模型,然后我的页面必须动态呈现所有图表和适当的 javascript。到目前为止,只有最后一个构建的图表显示:(
我为每个图渲染这个部分
<%if graph.present?%>
<%@graph = graph%>
<%end%>
<%if @graph.data.empty?%>
<%= render 'graphs/no_graph'%>
<%else%>
<script type="text/javascript">
$(document).ready(function() {
var data = $('#chart_<%=@graph.id%>').data('data');
reloadGraph(data);
$('a[data-toggle="tab"]').on('shown', function(e) {
reloadGraph(data)
})
})
function reloadGraph(data) {
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.yAxis.axisLabel('Monthly (kWh)');
d3.select('#chart_<%=@graph.id%> svg').datum(data).transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
}
</script>
<%=content_tag :div, id: "chart_#{@graph.id}",class: 'chart', data: {data: graph.monthly_data} do%>
<svg></svg>
<%end%>
<%end%>
在 NVD3 网站上,他们从以下内容开始:
var MainExample, ExampleOne, Example2
等等
然后在他们的施工电话中,他们分配例如MainExample = chart
关于我应该如何在rails中构建它的任何建议?