- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在图表中,有 2 个自定义按钮用于更新系列,以按百分比 (%) 或按计数重新绘制图表( View 切换)。在 renderer.button
的回调函数中,当我单击计数按钮时,我通过更改数据对象中 y 的值并调用 chart.update()< 来更新系列数据
修改系列数据的方法
const seriesData: any = this.data;
this.update(seriesData, true);
this.redraw();
图表不会自动重绘,只有当我放大或缩小浏览器或任何其他操作时才会重绘。这里缺少什么部分。
最佳答案
您正在努力解决的问题是在 render 函数中调用 update 方法会创建无限循环。
渲染调用更新 -> 更新重绘图表 -> 渲染再次调用 -> 渲染调用更新 -> ...
避免这种情况的方法之一是使用一些 bool 'flags'来控制更新将被调用一次。
使用 console.log 测试流程的简单演示:https://jsfiddle.net/BlackLabel/acoxmhdw/
let chartForUpdate = true;
Highcharts.chart('container', {
chart: {
events: {
render() {
let chart = this;
console.log('test redraw call 1')
if (chartForUpdate) {
chartForUpdate = false;
chart.series[0].update({
data: [5, 10]
})
console.log('test condition IF call')
}
console.log('test redraw call 2')
chartForUpdate = true
}
}
},
series: [{
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
}]
});
<小时/>
编辑
我犯了一个错误,我很抱歉 - 最大调用堆栈没有发生,因为渲染调用的无限循环,而是来自您尝试粘贴的数据。
更新的数据必须采用 Highcharts 所需的格式 - 这是一个系列配置对象,其数据为对象数组或值数组或数组数组 - 文档:https://www.highcharts.com/docs/chart-concepts/series和https://api.highcharts.com/class-reference/Highcharts.Series#update
同时,在您的演示中,数据对象数组正在传递给更新函数,这会产生错误。
我不确定触发此按钮后您想要显示哪些值,但您需要为其创建一个新的系列对象。像这样的事情:
https://stackblitz.com/edit/angular-9nkrgd-aykarp?file=src/app/app.component.ts
关于javascript - Highcharts Angular Chart 未从 renderer.button 事件中 redrwan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61058695/
我遇到过这个 html: 上面的html和这个有什么区别: 最佳答案 来自MDN page on the tag : 对于 type 的属性标签,可能的值是: 提交:按钮将表单数据提交给服务器
Button button= (Button) findViewbyID(R.id.button); 和 Button button = new Button(this); 有什么区别? 最佳答案 有
我是一名优秀的程序员,十分优秀!