线系列图在调整大小时会出错 - highcharts

问题描述 投票:2回答:1

我用过highcharts single line series graph。它似乎工作得很好,但当我调整页面大小(只是为了检查响应性或只是在移动设备上)。价值消失了。我可以在控制台日志中看到错误。

enter image description here

这就是我生成图表的方式

Highcharts.stockChart('nav-chart', {

 tooltip: {
        pointFormat:"{point.y:.3f}\u20ac"
  },
  chart: {
    type: 'line',
    zoomType: 'x',
    pinchType: 'x',
    panning: false,
    <?php if (is_front_page()){ ?>
    height: 700,
    <?php } else { ?> 
    height: 500, 
    events: {
      load: updateLegendLabel 
    }    
    <?php } ?> 
  },

updateLegendLabel有一些生成标签的计算。

 var chrt = !this.chart ? this : this.chart;
  chrt.update({
    legend: {
      useHTML: true,
      symbolPadding: 0,
      symbolWidth: 0,
      symbolHeight: 0,
      symbolRadius: 0,    
      labelFormatter: function() {


        var lastVal = this.yData[this.yData.length - 1],
          chart = this.chart,
          xAxis = this.xAxis,
          points = this.points,
          avg = 0,
          counter = 0,
          min, max;
... there is some business logic down there

当我调整页面大小时,points var变为null。为什么会这样?我需要重新更新数据集或什么?

php jquery highcharts
1个回答
1
投票

嵌套服务器和客户端逻辑不好。更好的是使用这样的逻辑分离。 Bellow one只是为了想法而不是一个确切的代码。但是,如果您提供将服务器逻辑与客户端逻辑分开的完整代码,则可以修复。

<script>
//before graph area started
var dataA = '<?php echo $dataA;?>';
var dataB = '<?php echo $dataB;?>';
//graph logic started
// your graph code which can use above variables
// but the variable need to be available can be evaluated from your draw script.

</script>

然后在图表脚本中使用这些变量。因为在重新调整浏览器大小时,图形重绘并且在重绘图形时其外观数据不可用。但如果使用上述逻辑,那么每次重绘都可以获得数据

© www.soinside.com 2019 - 2024. All rights reserved.