Javascript 剑道库存图表禁止放大到小时级别

Javascript 剑道库存图表禁止放大到小时级别,javascript,kendo-ui,kendo-chart,Javascript,Kendo Ui,Kendo Chart,我正在使用Kendo StockChark,我有一个如下所示的数据源: ... { "price": 0.010754, "date": 1461186000000 }, { "price": 0.010758, "date": 1461272400000 }, { "price": 0.010759, "date": 1461358800000 } ... 它是一个每日数据

我正在使用Kendo StockChark,我有一个如下所示的数据源:

...
{
"price": 0.010754,
"date": 1461186000000
},
{
"price": 0.010758,
"date": 1461272400000
},
{
"price": 0.010759,
"date": 1461358800000
}
...
它是一个每日数据源,每天都有相应的价格值

问题是,Kendo StockChart允许使用鼠标滚轮将数据放大到小时和分钟,即使没有数据。当我达到图表上的每日水平时,我应该防止缩放

缩放整数小时和分钟时,图表如下所示:

如您所见,天数之间没有数据,它们在图表上保持为空。我应防止放大每小时数据,即最大可缩放量应为天:

我已尝试覆盖StockChart的onZoom方法,如下所示:

vm.chartOptions.zoom = function(e) {
    if(e &&  e.sender &&   e.sender._plotArea && e.sender._plotArea.axisX  ){
        var diff = e.sender._plotArea.axisX.options.max.getTime() - e.sender._plotArea.axisX.options.min.getTime() ;
        if(diff < 24*60*60*1000*7){
            e.preventDefault();
            return false;
        }
     }
};
vm.chartOptions.zoom=函数(e){
if(e&&e.sender&&e.sender.\u plotArea&&e.sender.\u plotArea.axix){
var diff=e.sender.\u plotArea.axix.options.max.getTime()-e.sender.\u plotArea.axix.options.min.getTime();
如果(差值<24*60*60*1000*7){
e、 预防默认值();
返回false;
}
}
};
在这个方法中,我检查最小日期和最大日期之间的差异,如果少于一周,我会阻止缩放。当我使用鼠标滚轮缓慢缩放时,此方法有效。但当我快速放大时,它仍然会放大成小时和分钟

有办法解决这个问题吗?谢谢。

var dataForSource=[{
日期:新日期(“2013年12月16日凌晨02:06:00”),
计数:0
}, {
日期:新日期(“2013年12月16日凌晨02:07:00”),
计数:1
},
{
日期:新日期(“2013年12月16日凌晨02:09:00”),
计数:0
}, {
日期:新日期(“2013年12月16日凌晨02:09:15”),
计数:-1
},
{
日期:新日期(“2013年12月16日凌晨02:09:45”),
计数:0
},
{
日期:新日期(“2013年12月16日凌晨02:10:00”),
计数:-1
}, {
日期:新日期(“2013年12月16日凌晨02:15:00”),
计数:0
}
//对这些问题进行评论以了解问题所在
, {
日期:新日期(“2013年12月16日04:10:01 PM”),
计数:-1
}
, {
日期:新日期(“2013年12月16日晚上11:55:00”),
计数:0
}
];
var staticDataSource=new kendo.data.DataSource({
键入:“行”,
数据:dataForSource
});
函数createChart(){
$(“#图表”)。kendoStockChart({
dataSource:staticDataSource,
日期字段:“日期”,
系列:[{
键入:“行”,
风格:'步',
字段:“计数”,
类别字段:“日期”
}],
类别:{
//禁用聚合
类型:“类别”,
标签:{
格式:“HH:mm”,
跳过:1
}
},
导航器:{
系列:{
键入:“行”,
风格:'步',
字段:“计数”
}
},
zoomStart:函数(e){
e、 预防默认值();
返回false;
},
选择结束:功能(e){
//使用选择范围筛选数据源
console.log(e.from,e.to);
}
});
};
$(文档).ready(创建图表)

我也有同样的问题。对我来说,有效的方法是使用
baseUnit
分类轴定义为
fit
,而在
autoBaseUnitSteps
中没有定义小时/分钟/秒。见下文:

categoryAxis: {
    baseUnit: "fit",
    majorGridLines: {
        visible: false
    },
    autoBaseUnitSteps: {
        hours: [],
        minutes: [],
        seconds: []
    }
}

我不应该避免缩放。在我的例子中,我有一个更大的数据源(大约15年)。我必须启用缩放,直到每天都显示。然后应该停止缩放。你找到解决方案了吗?你能发布你的代码来显示剑道股票图表的使用情况吗?