我试图根据缩放列表更改与amChart Serial图关联的dataProvider。这个想法很简单:我有2组数据,每小时有一年中每小时的值,每日有一个每天的值。我从日常精度开始,当用户在35天内缩放时,我想切换到每小时精度。
这是听众
SPRING_CONFIG_NAME=myapp
这部分工作正常,现在我需要更新图表。要使用的功能应该是
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();
dataProvider,缩放就会重置,因此它会返回一个值&gt;重新应用了3000000000和dataHourly
。我需要在活动中手动设置dataDaily
和startDate
但是......我该怎么办?有这样的(不工作的)代码吗?
endDate
答案 0 :(得分:1)
作为临时修复,我使用chart.validateData();
更改了chart.validateNow(true, true);
。它可以防止事件传播,但我在缩小时遇到了毛刺。
无论如何,支持帮助我找到了通过处理dataUpdated
事件而不是停止所有事件传播来防止缩放重置的正确方法。 HERE是一个工作示例,其中事件dataUpdated
已正确管理以避免缩放重置(当然还需要正确处理zoomed
事件才能正确设置chart.ignoreZoomEvent