私はこれがうまくいくために苦労しています。 FormComponentからChooseLangComponentのselected
値にアクセスする必要があります。これを行う直接的な方法はありますか、それとも親コンポーネント(中間の人間のような行為)から渡す必要がありますか?私はすでにChooseLangComponentの$emit
とFormComponentのv-on:..
を試しましたが、うまくいきませんでした。子コンポーネント間でデータを渡す
ChooseLangComponent:
<template lang="html">
<div class="choose-lang">
<select v-model="selected">
<option v-for="lang in langs" v-bind:value="lang.value">{{lang.text}}</option>
</select>
</div>
</template>
<script>
export default {
data() {
return {
selected: 'en',
langs: [
{ text: 'English', value: 'en' },
{ text: 'German', value: 'ge' },
]
}
}
}
</script>
FormComponent:
<template lang="html">
<div class="form-name">
<div class="inputs">
<input type="text" v-model="nameText" v-on:keyup.enter="send_name">
</div>
</div>
</template>
export default {
data() {
return {
nameText: '',
}
},
methods: {
send_name() {
// I need the selected language here
}
}
}
親コンポーネント:
<div id="app">
<choose-lang></choose-lang>
...
<form-comp></form-comp>
</div>
...
Vue.component('choose-lang', require('./components/ChooseLangComponent.vue'));
Vue.component('form-comp', require('./components/FormComponent.vue'));
const app = new Vue({
el: '#app',
data: {
...
});
を確認してください選択した項目
http://jsbin.com/qagahabile/edit?html,js,output
の状態を保持するだろう平野オブジェクトをこのようなことはどうですか - http://jsbin.com/siyipuboki/edit?html,js,output –