私は入力にあるものをキャプチャしてh1に出力する簡単なアプリケーションを持っています。
<div id="app">
<div>
<module v-on:button-pressed="parentPrint(capturedInput)"></module>
</div>
<h1>{{ h1Text }}</h1>
</div>
問題は、h1が入力値を反映するように更新されないことです。
Vue.component('module', {
template:`
<div>
<input type="text" placeholder="Type Something Awesome" v-model="capturedInput" />
<button v-on:click="activateButtonPress">Change text</button>
</div>
`,
data(){
return {
capturedInput: ''
}
},
methods:{
activateButtonPress: function(){
console.log(this.capturedInput)
this.$emit('button-pressed', this.capturedInput)
}
}
})
new Vue({
el:'#app',
data:{
h1Text: 'Should reflect user input'
},
methods:{
parentPrint: function(capturedInput){
this.h1Text = capturedInput;
}
}
})
実際にデータをエミットに渡して親スコープで使用できるようにするにはどうすればよいですか? capturedInput
は私のためにundefined
を返し続けます。
それが助け場合は、[codepen](https://codepen.io/modermo/pen/qPmzJW?editors=1010)ここで – Modermo