从内部安装的函数中调用Vue方法

时间:2019-01-07 10:30:16

标签: javascript vue.js

在我的Vue挂载代码中,我通过this.test()调用功能测试。可以按预期工作。

但是,当我从新的ResizeObserver函数调用this.test()时,却出现错误

  

this.test不是函数

我知道这是因为现在this指向resizeObserver。我不明白的是我应该在那里使用。删除它也会产生错误。

我有以下Vue代码

  mounted: function() {
    this.test();

    new ResizeObserver(function() {
        this.test();
      }).observe(this.g("tC"));
  },
  methods: {
    test: function() {}
    ....
}

3 个答案:

答案 0 :(得分:1)

您应该将“ this”绑定到传递给ResizeObserver的函数上

'SELECT a, b FROM ' . \App\Entity\Animals:class . ' a
JOIN a.category b'

或者使用箭头函数(如果您的环境支持ES6),因为箭头函数使用外部作用域的“ this”值:

  mounted: function() {
    this.test();
    new ResizeObserver(function() {
        this.test();
      }.bind(this)).observe(this.g("tC"));
  },

答案 1 :(得分:1)

它对我来说是这样的

  mounted: function() {
    $vm = this;

    new ResizeObserver(function() {
        $vm.test();
      }).observe(this.g("tC"));
  },
  methods: {
    test: function() {}
    ....
}

答案 2 :(得分:0)

  

使用箭头功能绑定范围

 new ResizeObserver(()=> { //--> Arrow Function
        this.test();
      }).observe(this.g("tC"));