2つのVueコンポーネントがあります。 parent-component
:VueJSでの親子通信
Vue.component('parent-component',{
methods: {
test: function(){
alert('Option Selected');
}
},
template: `
<div><slot></slot></div>
`
});
そしてanimals
コンポーネント:
Vue.component('animals',{
data: function(){
return {
selected: ''
}
},
template: `
<select @change="selectionChanged" v-model="selected">
<slot></slot>
</select>
`,
methods: {
selectionChanged: function(){
this.$emit('optionselected', this.selected);
}
}
});
そして、ここでは私のHTMLです:
<div id="app">
<parent-component @optionselected="test()">
<animals>
<option>Aardvark</option>
<option>Bear</option>
<option>Cat</option>
</animals>
</parent-component>
</div>
私が子コンポーネント(animals
)から選択されたオプションを取得しようとしています親コンポーネント(parent-component
)。私は子からoptionselected
イベントを出していますが、親コンポーネントがそのイベントに応答していないようです。つまり、test()メソッドが全く呼び出されていないということです。私はここで間違って何をしていますか?ここで
感謝。しかし、イベント排出中に 'animals'から'親コンポーネント 'に渡された 'this.selected'プロパティーを受け取るにはどうすればいいですか:' this.selected'オプションは、 'this.selected'オプションを受け取りますか? – Eisenheim
@Eisenheim You通過している。あなたはただそれで何もしていませんでした。選択した値を表示するようにアラートを更新しました。 – Bert