echarts访问不到vue的方法
vue+echarts this指向问题
vue中使用echarts,但是在echarts鼠标点击事件中,想要使用vue methods中定义的函数(使用this.函数名调用),发现报函数未定义错误。
原因:此时this指向的是echarts 而非 vue
解决方法:
使用箭头函数。
修改前
tooltip: { trigger: 'axis', formatter:function (params) { //x轴名称 let name = params[0].name; //值 let value = Number(params[0].value); let valueFilter = '<i style="background-color: #0c8ec3" class="status-point"></i>' + "冒烟打回率:" + '<span style="font-weight: bolder">' + Number(params[0].value).toString() + "%" + '</span>' + '</br>'; let result = this.getBackInfo(params, name, callBackDict) if (value > 0 && result) { return name + '</br>' + params[0].marker + valueFilter + '</br>' + '<span style="font-weight: bolder">' + '打回迭代:' + '</span>' + '</br>' + result; } else { return name + '</br>' + params[0].marker + valueFilter } },
修改后
tooltip: { trigger: 'axis', formatter: (params) => { //x轴名称 let name = params[0].name; //值 let value = Number(params[0].value); let valueFilter = '<i style="background-color: #0c8ec3" class="status-point"></i>' + "冒烟打回率:" + '<span style="font-weight: bolder">' + Number(params[0].value).toString() + "%" + '</span>' + '</br>'; let result = this.getBackInfo(params, name, callBackDict) if (value > 0 && result) { return name + '</br>' + params[0].marker + valueFilter + '</br>' + '<span style="font-weight: bolder">' + '打回迭代:' + '</span>' + '</br>' + result; } else { return name + '</br>' + params[0].marker + valueFilter } },