2016-09-23 28 views
0

https://github.com/yuche/vue-strap/blob/master/src/Spinner.vue https://github.com/yuche/vue-strap/blob/master/docs/example/spinnerDocs.vuevuestrap微調無法聽出事件

望着參考實現,我試圖在這裏做的一樣:https://jsfiddle.net/gw3br69r/2/

我試着傾聽不同的事件,如showshow:spinnerspinnerspinner:shown等,並且還嘗試通過$on在此處詳細收聽活動:https://vuejs.org/api/#vm-onhttps://vuejs.org/guide/components.html#Parent-Child-Communication,但我無法聽到該事件。我也嘗試了vue.js的非縮減版調試版本,但我不知道如何跟蹤所有事件以查看shown:spinner是否被調用。

回答

1

如果Spinner組件使用$dispatch()「沿着父鏈向上傳播」,那麼您的代碼將工作。

但看着at the source code,我們看到使用$broadcast()「向下傳播給所有後代」。

我不知道他們爲什麼要廣播而不是調度,我不明白他們的文檔示例如何工作。這似乎不可能。一些東西一定是被調整或改變了。

無論如何,通過使用v-on,由「孩子」廣播的事件可以由其「父母」收聽。它是這樣的:

<spinner v-on:shown::spinner="doSomething"></spinner> 

見工作小提琴:https://jsfiddle.net/x80ph0mk/1/

+0

哇,我失去了這麼多的頭髮在此。 –