【发布时间】:2016-12-08 14:02:20
【问题描述】:
当我在组件中已经有一个更改/输入处理程序时,如何指定一种更改/输入处理程序供 vue.js 中的组件使用?我有一个非常简化的文本输入,类似于:
Vue.component('text-input', {
template: '\
<span>\
$\
<input\
ref="input"\
v-bind:value="value"\
v-on:input="updateValue($event.target.value)"\
>\
</span>\
' ,
props: ['value'],
methods: {
updateValue: function (value) {
this.$emit('input', value);
},
uppercase:function(value){
return value.toUpperCase();
}
}
});
我会这样使用它:
<text-input v-model="name"></text-input>
它工作正常,并且使用事件系统(使用 $emit)正确更新。但是现在我想将输入的值转换为大写,所以大概想在我的“文本输入”组件中传入一个输入处理程序,它是方法的名称,例如“大写”。所以我会有这个:
<text-input v-model="name" @input="uppercase"></text-input>
但在我的组件中,@input 已被 updateValue 使用。我怎样才能将两者结合起来? (或者,也许,有没有一种不同的更好的方式来思考整个问题?)
【问题讨论】:
标签: vue.js