[我认为这是Javascript范围的“问题”,在示例B中,您运行console.log(this.options.series)
并记录了来自选项的系列,但是您仅将方法push推到this.series
,您处于不同的范围。
我正在使用highcharts-vue在我的Vue项目中添加Highcharts。
[A)首先,在javascript中,以下作品
let b =5;
let data = {
a:b
}
console.log('data', data.a);
日志说5,b的值
在Vue和Highcharts中,我尝试具有相同的逻辑。在vue模板中设置图表,首先将其选项设置为空,然后尝试将数字赋予序列。模板为<highcharts ref="chart" :callback="chartcallback" :options="options" ></highcharts>
然后使用Vue
[B)将变量设置为空数组,将其传递给选项,并使用这些变量更新vue中的选项
data(){
return{
series:[],
options: {
series: this.series,
}
}
}
然后,在Vue中,如果我愿意,则>]
console.log(this.options.series); this.series.push({ name:'hello', data:[] }); console.log(this.options.series);
将options.series设置为var,更改var,而options.series也将更改。第一个日志说
undefined
,第二个是空数组,但是我只是在其中推入了名称和数据。这使我感到困惑,因为它就像A)一样,在javascript中有效。这里没有。是因为Vue还是Highcharts?
我尝试的另一种方法是
[C)
设置选项为空,设置vars,等于vars的选项data(){ return{ options: { series: [], } } }
然后,在Vue中,如果我愿意,则>]
console.log(this.options.series); this.series.push({ name:'hello', data:[] }); this.options.series = this.series console.log(this.options.series);
这有效,但是我不明白为什么。第一个日志是一个空数组,第二个日志具有名称和数据。如果设置选项,然后设置等于它的var,为什么B)不起作用?我也将var设置为options,但是时间不同。
[请,我想了解为什么看起来像A的B不起作用。这也是为什么C起作用的原因,因为在创建选项后,我将options.series设置为var,所以]
谢谢
我正在使用highcharts-vue在我的Vue项目中添加Highcharts。 A)首先,在javascript中,以下工作使b = 5; let data = {a:b} console.log('data',data.a);日志说5,...
[我认为这是Javascript范围的“问题”,在示例B中,您运行console.log(this.options.series)
并记录了来自选项的系列,但是您仅将方法push推到this.series
,您处于不同的范围。
在C上尝试具有2个不同的作用域,但是比运行this.options.series = this.series
多,这就是为什么它在那个时候起作用的原因。
[我认为这是Javascript范围的“问题”,在示例B中,您运行console.log(this.options.series)
并记录了来自选项的系列,但是您仅将方法push推到this.series
,您处于不同的范围。