https://github.com/yuche/vue-strap/blob/master/src/Spinner.vue https://github.com/yuche/vue-strap/blob/master/docs/example/spinnerDocs.vue
查看参考实现,我尝试在此处执行相同操作:https://jsfiddle.net/gw3br69r/2/
我已尝试收听show
,show:spinner
,spinner
,spinner:shown
等不同事件,并尝试通过以下方式收听事件$on
在此处详细说明:https://vuejs.org/api/#vm-on和https://vuejs.org/guide/components.html#Parent-Child-Communication,但我无法收听该事件。我也尝试过vue.js的非缩小调试版本,但我不知道如何跟踪所有事件以查看shown:spinner
是否被调用。
答案 0 :(得分:1)
如果Spinner组件使用$dispatch()
“沿着父链向上传播”,那么您的代码将起作用。
但是看at the source code,我们看到$broadcast()
被用来“向下传播给所有后代”。
我不知道为什么他们是广播而不是调度,我不明白他们的文档示例是如何工作的。这似乎不可能。必须调整或改变某些东西。
无论如何,“孩子”播放的事件可以通过其“父母”使用v-on
进行聆听。它是这样的:
<spinner v-on:shown::spinner="doSomething"></spinner>
查看工作小提琴:https://jsfiddle.net/x80ph0mk/1/