错误? RangeSelector按钮工作不正常
问题描述:
我想我已经找到了Highstock的最新版中的错误:错误? RangeSelector按钮工作不正常
以下RangeSelector定义:
rangeSelector: {
buttons: [{ type: 'day', count: 1, text: '1d' },
{ type: 'day', count: 7, text: '7d' },
{ type: 'month', count: 1, text: '1m' },
{ type: 'month', count: 3, text: '3m' },
{ type: 'year', count: 1, text: '1y' },
{ type: 'all', text: 'All' }],
selected: 6, // all
inputEnabled: false
}
现在我显示正好1年数据。这意味着当我按下“1y”和“全部”时,会显示完全相同的视图。另外两个按钮被激活,当我按下“所有”:
到目前为止好。现在我再次选择一个不同的范围(比如说“1d”)。数据正确显示。但现在来的错误:量程选择还是选择了“一年”,这将导致在此:
这是一个无效的状态,我supposte这是一个错误。是否有某种我可以使用的解决方法?
我使用Highstock V1.3.9
编辑:小提琴重现此错误: http://jsfiddle.net/xdRk8/5/
重现步骤:
- 运行小提琴
- 点击 “全部” 中量程选择器
- 在量程选择器中单击“1d”
答
我设法通过使用解决方法来解决此问题。如果数据正好是一年,我会检查要显示的数据的时间增量。如果没有,我在创建高股票图表之前动态地将按钮“全部”添加到选项:
// Workaround to fix a bug in Highstock 1.3.9 where
// the "1y" button was active all the time when exactly
// 1 year of data is displayed
var past = new Date(plotEnd.getTime());
past.setYear(past.getFullYear() - 1);
if (past.getTime() == plotStart.getTime()) {
var oneYear = true;
}
var chartOptions = {
// ...
}
if (!oneYear) {
chartOptions.rangeSelector.buttons.push({ type: 'all', text: 'All' });
}
请重现现场演示,作为jsFiddle。 –
@ SebastianBochan添加小提问 – RononDex
@SebastianBochan对此有何更新? – RononDex