【发布时间】:2019-12-04 16:41:47
【问题描述】:
我想知道组件何时以及为什么无法处理正在侦听的第一个 $on 事件。 我有这个函数,调用时会触发 2 个事件:
initModalTimer: function () {
serverBus.$emit('initSettingsModal', {
'name': 'Timer',
});
serverBus.$emit('initTimer', {
'timer_type': this.timer_type,
});
}
InitSettingsModal 传递模态信息:
//Modal Component
<template>
<div v-else-if="elementName === 'Timer'">
<timer></timer>
</div>
<div v-else-if="elementName === 'Socials'">
<socials></socials>
</div>
</template>
<script>
//Other Vue stuff
created() {
serverBus.$on('initSettingsModal', (elem_identifier) => {
this.elementName = elem_identifier["name"];
});
}
</script>
第二个事件在根据模态组件中的 v-if 加载的组件中处理(在本例中为组件计时器):
//Timer Component
created() {
serverBus.$on('initTimer', (response) => {
//Execute code
});
}
但第一个'initTimer'从未被触发。当我再次执行第一个函数(initModalTimer)时,一切正常。
我在Reddit 上发现了一个类似的问题,有人建议“事件总线监听 $on 是在 $emit 之后发生的”。但我不明白这是什么意思。
【问题讨论】:
标签: javascript vue.js vuejs2