鍍金池/ 問答/PHP  HTML/ 直接用this.$router.push會報錯,在外邊存一下this,用owne

直接用this.$router.push會報錯,在外邊存一下this,用owner就可以了

  const owner = this;
    const echarts = require('echarts');
    require('echarts-wordcloud');
    const chart = echarts.init(document.getElementById('wcmain'));
    chart.on('click', (params) => {
      // console.log(params);
      owner.$router.push(`/search-results?keyword=${params.data.name}`);
    });

這中this指向得得問題,有沒有其他得辦法來修改? 有人說用call,請問哪個大神知道具體怎么用?
改成這樣以后可以用了

 this.call(this.$router.push(`/search-results?keyword=${params.data.name}`));

但是報錯_this.call is not a function應(yīng)該怎么改?

回答
編輯回答
扯機薄

用this不應(yīng)該出問題

2018年7月3日 16:05
編輯回答
吃藕丑
const echarts = require('echarts');
require('echarts-wordcloud');
const chart = echarts.init(document.getElementById('wcmain'));
let callback = function(params){
  // console.log(params);
  this.$router.push(`/search-results?keyword=${params.data.name}`);
}
callback = callback.bind(this)
chart.on('click', callback);
2017年1月31日 05:40