当我开始在输入字段中输入时,我想在控制台中获取此数据,但目前它是空的。我究竟做错了什么?
HTML:
<products-list v-model="product.name" v-on:keyup="productName"></products-list>
记者:
Vue.component('products-list', {
template:
`<input class="product_name form-control" contenteditable="true"></input>`,
});
var app = new Vue({
el: '#app',
data: {
items: items,
product: {
name: "",
}
},
methods: {
productName: function() {
console.log(product.name);
}
}
});
原文由 Svetoslav Dimitrov 发布,翻译遵循 CC BY-SA 4.0 许可协议
v-model
默认情况下使用@input
事件,所以如果你想使用v-model
在自定义输入组件上你需要发出父事件。因此,在您的组件中,您只需执行以下操作:<input class="product_name form-control" @input="$emit('input', $event.target.value)" />
现在在你的父母中你可以这样做:
<products-list v-model="product.name"></products-list>
你可以在这个 JSFiddle 上看到完整的例子: https ://jsfiddle.net/7s2ugt11/