描述:
在使用vue练习demo时,将组件(如input标签)通过v-model与data中的属性绑定,改变组件的值,data中对应属性的值也跟着变化。
但是使用其他表单插件时,通过上述方法绑定,data中对应属性并没有发生变化,页面上监听组件的值,发现值已经改变,为何通过v-model绑定的对应属性没有变化呢?试了下需要通过change事件触发,在change事件中将组件变化后的值赋给对应属性...
<div id="tableInfo">
<label>币种</label>
<div>
<input id="currency" v-model="formData.currency"/>
<span>{{formData.currency}}</span>
</div>
</div>
<div>
<input id="test" v-model="formData.test">
<span>{{formData.test}}</span>
</div>
通过v-model将组件和data中的属性绑定,js代码如下:
结果如图:$("#currency").val() 有值,vm.formData.currency 为空
//实例化vue
vm=new Vue({
el:'#tableInfo',
data:{
formData : {
opportunityId:'',
companyId:'',
occurredDate:'',
currency:'',
applicationBy:getCurrentUserId(),
test:''
}
},
methods:{}
});
$('#currency').select2Ext({
placeholder : '请选择币种',
width:'100%',
data:lookupFormater(currencyData)
});
添加change事件,vm.formData值更新了,如图。
//使用change事件触发:
$('#currency').select2Ext({
placeholder : '请选择币种',
width:'100%',
data:lookupFormater(currencyData)
}).on('change',function(){
vm.formData.currency = evt.target.value;
});
问题:既然属性对应的组件值$("#currency").val()已经改变,vm.formData.currency的值为何没有同时更新呢?已经通过v-model进行数据绑定了啊,为何还需要通过change事件触发,再赋值啊?
http://cn.vuejs.org/v2/guide/...