Symfony3.2+ObHighchartsBundle同一页面多图表展示问题
在Symfony 3.2 + ObHighchartsBundle中展示多个图表的解决方案
嘿,我来帮你搞定这个多图表展示的问题!你现在只显示出一个图表,核心原因是chart()函数默认会把图表渲染到页面中第一个匹配的容器里,所以得明确给每个图表指定对应的目标div ID。
解决步骤
- 确认控制器传参正确:确保你的控制器已经成功创建了
statMontant和statEva两个图表实例,并且都传递到了当前模板中。 - 修改模板中的图表渲染代码:给
chart()函数添加第二个参数,指定每个图表要渲染到的容器ID。
修改后的完整页面代码
<div class="col-sm-6 col-lg-6"> <div id="linechart" style="min-width: 400px; height: 400px; margin: 0 auto"></div> </div> <div class="col-sm-6 col-lg-6"> <div id="linechart2" style="min-width: 400px; height: 400px; margin: 0 auto"></div> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> <script src="//code.highcharts.com/4.1.8/highcharts.js"></script> <script src="//code.highcharts.com/4.1.8/modules/exporting.js"></script> <script type="text/javascript"> {{ chart(statMontant, 'linechart') }} {{ chart(statEva, 'linechart2') }} </script>
额外注意事项
- 检查两个图表的配置是否独立,避免出现全局Highcharts选项冲突的情况
- 确保jQuery和Highcharts脚本的加载顺序正确(你当前的顺序没问题,先加载jQuery再加载Highcharts)
- 如果还是无法显示第二个图表,可以打开浏览器的开发者工具(F12)查看控制台是否有JS报错,比如容器不存在、图表配置错误等问题
内容的提问来源于stack exchange,提问作者RIAHI SOULEF
相关产品推荐
相关产品推荐

