Javascript Amcharts";TypeError:this.chart.zoomToDates不是函数;

Javascript Amcharts";TypeError:this.chart.zoomToDates不是函数;,javascript,amcharts,amstock,Javascript,Amcharts,Amstock,我正试图按照入门创建外部缩放控制 我有三个按钮 <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> 但是当我试图调用t

我正试图按照入门创建外部缩放控制

我有三个按钮

  <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>
但是当我试图调用
this.chart.zoomToDates
时,我得到一个错误“TypeError:this.chart.zoomToDates不是函数”

我还尝试使用
AmCharts.stringToDate
将字符串转换为日期,但也没有帮助。 再现错误


另外,我知道
期间
属性-但在这种情况下,1个月实际上不是日历月,因此我需要手动指定日期

代码笔使用的是序列图表,而您使用的是股票图表

序列图法

zoomToDates(开始、结束)
开始-开始日期,日期对象\end-结束日期,日期对象


股票图表有方法

缩放(开始日期、结束日期)
开始日期、结束日期-日期对象

所以,你需要像这样的东西:

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]))
}

该代码笔使用序列图表,而您使用的是股票图表

序列图法

zoomToDates(开始、结束)
开始-开始日期,日期对象\end-结束日期,日期对象


股票图表有方法

缩放(开始日期、结束日期)
开始日期、结束日期-日期对象

所以,你需要像这样的东西:

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]))
}