从vue当前组件访问方法

时间:2018-11-05 00:31:36

标签: vue.js vuejs2 vue-component vue-events

是否可以提供任何指南或建议,以解决以下问题。 用例:尝试实现通知组件 场景:我试图在Vue中触发事件时调用方法或更改数据状态。 我已经在安装的函数上定义了事件监听器,并尝试访问其中一种方法。

enter image description here

基本上,事件函数中的警报被触发,而方法内部的警报没有被触发,甚至事件函数中的任何数据操作也没有执行。

我在哪里想念?在事件监听器中更改状态是否不正确? 基本上,我正在尝试实施通知功能,该功能会在几秒钟后自动消失

感谢您的帮助。

谢谢, 吉里什

2 个答案:

答案 0 :(得分:1)

还有另一个原因,回调函数中的this不是Vue组件。您可以分配var self = this并在回调中使用,或使用箭头函数。

mounted: function () {
  var self = this
  EventBus.$on('show', function () {
    self.test()
    self.show = true
  })
},
methods: {
  test () {
    console.log('Inside methods')
  }
}

答案 1 :(得分:0)

我相信您的问题是拼写错误而不是

method: {}

,使用methods: {} 示例:

Error.
method: {
test: function () {
alert('Inside Method');
}

correct.
methods: {
test: function () {
alert('inside method);
}
}

我知道这与问题无关,但是在使用事件总线时要小心,就好像您有一位发言人,并在人群中间大喊一个人的名字。 例: 事件总线说,汉密尔顿在10,000人的人群中。 在这群人中间,您可以拥有多少个汉密尔顿?使用更具体的内容,例如父子沟通,避免使用事件总线。