“此”未定义

时间:2019-08-06 16:47:55

标签: vue.js multi-select

我使用Vue-Multiselect https://vue-multiselect.js.org/#sub-getting-started来创建多选择输入,如下所示

<multiselect v-on:select="myfilter()" v-model="cityF" 
:options="cities"  placeholder="City" label="name" track-by="name">

</multiselect>

但这在myfilter函数中始终是未定义的。问题是什么?我该如何解决? 谢谢。

1 个答案:

答案 0 :(得分:1)

我只是猜测,但是...

1您实际上是在使用This而不是this¯\ _(ツ)_ /¯

这很容易解决,只需使用“ this”而不是“ This”

2您可能将函数定义为

methods:{
  myfilter: function() {
    console.log(this.whyNoWork);
  }
}

这将不会使用正确的范围,而是使用

methods:{
  myfilter: function() {
    console.log(this.isWorking);
  }.bind(this)
}

更好

methods:{
  myfilter() {
    console.log(this.isWorking);
  }
}

3您可能应该将模板定义为myfilter而不是myfilter(),除非您想向模板传递一些东西

<multiselect v-on:select="myfilter" v-model="cityF" 
:options="cities"  placeholder="City" label="name" track-by="name">
</multiselect>

更多的代码通常意味着更多的帮助,否则我们只是在猜测。