VueJS:使用eventbus从组件调用方法

时间:2018-01-03 20:08:32

标签: vue.js vuejs2 vue-component

我正在使用VueJS并希望在.Vue组件中触发一个方法。事件总线正常工作。我根据这篇文章创建了这个:https://alligator.io/vuejs/global-event-bus/

在eventbus函数中,我想从组件中调用方法。我怎样才能做到这一点?我试过this.doSearch(),但这不起作用。有什么建议吗?

//Event listener
EventBus.$on('i-got-searched', search => {
    if (!(search === undefined || search === null)) {
        console.log(`Debug: ${search}`)
    }
});

//Component
export default {
    methods: {
        doSearch(input) {
            console.log(input);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用Vue的ref指令应该适合你:

<search-comp ref="search"></search-comp>

然后在你的eventbus中使用:

var search = parent.$refs.search;
search.doSearch(val);

这是一个有效的演示: https://codepen.io/egerrard/pen/vpJdQJ

以下是文档: https://vuejs.org/v2/api/#ref