gpt4 book ai didi

javascript - 根据缩放事件更改 amChart Serial 中的 dataProvider

转载 作者:行者123 更新时间:2023-12-03 06:19:59 27 4
gpt4 key购买 nike

我正在尝试根据缩放级别更改与 amChart 串行图关联的 dataProvider。这个想法很简单:我有两组数据,每小时有一年中每个小时的值,每日有每天的值。我从每日精度开始,当用户缩放到 35 天以下时,我想切换到每小时精度。

这是监听者

chart.addListener("zoomed", function (event) {
if (event.endDate - event.startDate > 3000000000 && chart.dataProvider == dataHourly) {
chart.dataProvider = dataDaily;
}
else if (event.endDate - event.startDate <= 3000000000 && chart.dataProvider == dataDaily) {
chart.dataProvider = dataHourly;
}

// now I need to "commit"
}

这部分工作正常,现在我需要更新图表。要使用的函数应该是

chart.validateData();
chart.animateAgain();

问题是,一旦我尝试应用 dataHourly dataProvider,缩放就会重置,因此它会返回到 > 3000000000 的值,并且重新应用 dataDaily。我需要在事件中手动设置 startDateendDate 但是...我该怎么办?有类似这样的(不起作用)代码吗?

// now I need to "commit"
chart.startDate = event.startDate;
chart.endDate= event.endDate;
chart.validateData();
chart.animateAgain();

最佳答案

作为临时修复,我将 chart.validateData(); 更改为 chart.validateNow(true, true);。它可以防止事件传播,但我在缩小时遇到了故障。

无论如何,支持人员帮助我找到了通过处理 dataUpdated 事件而不是停止所有事件传播来防止缩放重置的正确方法。 HERE是一个工作示例,其中正确管理事件 dataUpdated 以避免缩放重置(当然还需要正确处理 zoomed 事件以设置 chart.ignoreZoomEvent 正确)

关于javascript - 根据缩放事件更改 amChart Serial 中的 dataProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com