我使用了高图single line series graph。看来一切正常,但是当我调整页面大小时(只是检查响应性还是仅在移动设备上)。值消失。我可以在控制台日志中看到错误。
这就是我生成图表的方式
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。为什么呢?我需要重新更新数据集还是什么?
答案 0 :(得分:1)
嵌套服务器和客户端逻辑不好。更好的方法是这样分隔逻辑。波纹管只是出于想法而不是确切的代码。但是,如果您提供了将服务器逻辑与客户端逻辑分开的完整代码,则可以解决此问题。
<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>
然后在图形脚本中使用这些变量。 因为在调整浏览器大小时,图形正在重绘,并且在图形重绘时其外观数据不可用。但是,如果使用上述逻辑,则每次重绘时都可以使用数据