【发布时间】:2017-10-11 22:11:54
【问题描述】:
我正在尝试执行源代码中的here,但它不起作用。
但事件已发送但从未收到。
这是我能做的最简单的例子:
在 bootstrap.js 中:
window.events = new Vue();
window.flash = function (message, level = 'success') {
console.log('emit'); // This is working
window.events.$emit('flash', { message, level });
};
Vue.component('flash', require('./vue/components/Flash.vue'));
Flash.vue:
<template>
<div> MY FLASH</div>
</template>
<script>
export default {
created() {
window.events.$on(
'flash', data => alert('event!!!')
);
},
};
</script>
在我看来:
<flash></flash>
我可以在我的视图中看到组件渲染,即 MY FLASH 消息,但我从未收到来自 emit 的警报!
我的调试器也没有错误
我错过了什么吗?看起来很简单....
【问题讨论】:
-
你在某处打电话给
flash()吗? -
现在,我简化了它来寻找bug,我不调用flash(),我只是调用alert('event') 来知道它是否被触发。我知道
window.events.$emit('flash');是否已被调用,但从未收到 -
好的,我应该在哪里调用它?在任何 vue 组件中???
-
那么,你知道,
console.log('emit')被解雇了吗? -
嗯,让我看看,我会尽快试一试