2017-02-24 117 views
1

我有兩個組件,一個包含另一個。Vue.js自定義事件命名

當我從小孩觸發事件時,我無法在父項中收到它。

子組件

this.$emit('myCustomEvent', this.data); 

父組件

<parent-component v-on:myCustomEvent="doSomething"></parent-component> 

但是,當我在它的工作原理兩地改變事件名字我定製事件

Vue以某種方式改變事件名稱?或者什麼可能是一個問題? 我讀docs有關組件的命名慣例,但沒有什麼相關的事件命名

回答

0

Vue.js變換的不僅是XML標籤(配件名稱),但屬性一樣,所以當生成事件

$emit('iLikeThis')

你必須處理它:

v-on:i-like-this="doSomething"

從文檔:

當註冊部件(或道具),可以使用烤肉-情況下, 駝峯,或首字母大寫。 ...

在HTML模板雖然,你必須使用烤肉情況 當量:

+1

不工作。 Vue不會將camelCase轉換爲烤肉串... 但是,如果我在烤肉串風格中發出事件,並且在烤肉串風格中聽取它的作用。 – xAoc

+0

同樣在這裏..這似乎不適用於事件(再)。使用v2.4.2 –

1

自定義事件,最安全的做法是隻使用小寫事件名字全部砸在一起。目前,即使烤肉串也可能有問題。

this.$emit('mycustomevent', this.data); 

然後,在父組件,隨意綁定到駱駝套管功能

<parent-component v-on:mycustomevent="doSomething"></parent-component> 

這有點janky,但它的作品。

Source(表示kebab-case也不起作用)

+2

烤肉串案件適合我 – xAoc