【发布时间】:2017-11-20 13:18:38
【问题描述】:
基于官方示例Custom Input Component example:
HTML:
<div id="app" >
<div :class="{'has-value' : hasValue}">
<input type="text"
ref="input"
v-bind:value="value"
@input="onInput" >
</div>
</div>
JS:
new Vue({
el: '#app',
data: function() {
return {
hasValue: false
}
},
props: ['value'],
methods:{
onInput: function(){
val= this.$refs.input.value
if(val && val.length > 0){
this.hasValue = true
} else {
this.hasValue = false
}
}
}
})
预期:
动态设置 hasValue 数据作为输入,并将 Css 类绑定到该数据
意外: 只有在初始化并输入第一个字符后,输入的字符才会从输入中删除。按 JS-Fiddle->Run 再次查看。
在第一个字符之后,一切都按预期工作。
如果我删除 v-bind:value="value" 或评论 \\this.hasValue = true 它会按预期工作。自定义 Input 组件推荐绑定 value 属性。
这是故意的吗?为什么?或者这是我应该报告的错误?
【问题讨论】:
标签: vue.js vue-component