我正在尝试按照this入门创建外部缩放控件。
我有3个按钮
<v-btn v-on:click="showPeriod('1 month')">1 month</v-btn>
<v-btn v-on:click="showPeriod('3 month')">3 month</v-btn>
<v-btn v-on:click="showPeriod('6 month')">6 month</v-btn>
和
eventListener
showPeriod
showPeriod: function(period) {
console.log("Periods", this.periods)
if (period != 'All'){
this.changeDataZoom(this.periods[period])
}
else {
//Logic fot 'ALL' period
}
},
changeDataZoom: function (rawPeriod) {
let regex = /([0-9]{2,4}[\-][0-9]{2}[\-][0-9]{2}).*?/g
let periods = []
rawPeriod.match(regex).forEach(function (period) {
periods.push(moment(period,"YYYY-MM-D").format("YYYY-MM-DD"))
})
//Periods ["2018-01-26", "2018-07-27"]
this.chart.zoomToDates(periods[0], periods[1])
},
但是,当我尝试调用
this.chart.zoomToDates
时,出现错误“ TypeError:this.chart.zoomToDates不是函数”我也尝试使用
AmCharts.stringToDate
将字符串转换为日期,但也没有帮助。Link重现错误
附言我知道
periods
属性-但是在这种情况下1个月实际上不是日历月,因此我需要手动指定日期。 最佳答案
该代码笔使用序列图,而您使用的是股票图。
序列图具有方法zoomToDates
zoomToDates(开始,结束)
开始-开始日期,日期对象\结束-结束日期,日期对象
股票图表的方法为zoom
zoom(startDate,endDate)
startDate,endDate-日期对象。
因此,您需要类似:
changeDataZoom: function (rawPeriod) {
let regex = /([0-9]{2,4}[\-][0-9]{2}[\-][0-9]{2}).*?/g
let periods = []
rawPeriod.match(regex).forEach(function (period) {
periods.push(moment(period,"YYYY-MM-D").format("YYYY-MM-DD"))
})
//Periods ["2018-01-26", "2018-07-27"]
this.chart.zoom(new Date(periods[0]), new Date(periods[1]))
}
关于javascript - Amcharts“TypeError:this.chart.zoomToDates不是函数”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51588629/