如何访问onclick函数之外的数据

问题描述 投票:2回答:2

我需要从我的Chart初始化对象的id[]函数中访问我的组件的数据属性(onClick),但是当我尝试undefined时,我得到一个id[position]错误:

window.open("/#/user/history/detail/" + id[position], "_self");

我的数据属性:

data() {
  return {
    id: [1,2,3,4,5]
  };
}

onClick功能:

mounted() {
  this._chart = new Chart({
    ...
    onClick: function(evt, array) {
      if (array.length != 0) {
        var position = array[0]._index;
        console.log(position);
        window.open("/#/user/history/detail/" + id[position], "_self"); //problem
      } else {
        console.log("You selected the background!");
      }
    }
  })
}
javascript vue.js vuejs2 chart.js
2个回答
1
投票

onClick: function(evt, array) { }thisChart的例子。要将上下文绑定到Vue实例,请使用arrow function

this._chart = new Chart({
  onClick: (evt, array) => {
    ...
    console.log(this.id[position])
  }
)

updated fiddle


2
投票

在引用组件的thisdata属性中的变量时,请使用props

所以代替:

window.open("/#/user/history/detail/" + id[position], "_self");

使用:

window.open("/#/user/history/detail/" + this.id[position], "_self");
© www.soinside.com 2019 - 2024. All rights reserved.