当在使用v-for循环生成一个带表单的标签块,表单需要进行双向绑定时
如果直接在items数组中的对象属性VM赋值给v-model实现数据的双向绑定
v-model="obj.name" //这样的效果
我一开时的做法是这样的(错误):
<input
v-for="(item,index) in items"
:key="index"
:type="item.type"
:placeholder="item.placeholder"
v-model="item.VM"
</div>
export default {
data() {
return {
items:[
{type="text", VM: "obj.name", placeholder: "请输入用户名",},
{type="password", VM: "obj.password", placeholder: "请输入密码",},
obj:{
name:'这个是最终要绑定的属性',
password: '',
实际上应该这样做:
- 如果你绑定的变量名本来不是对象的属性时,需要将变成对象的属性名
<input
v-for="(item,index) in items"
:key="index"
:type="item.type"
:placeholder="item.placeholder"
v-model="obj[item.VM]"
</div>
原理比较简单,就是在JS中对象,获取属性值时使用的方法不同造成的结果,如果是使用对象.属性名
的方式来获取的话,属性名是不能为变量的;但是使用对象[属性名]
这种方式时,属性名就可以为变量。
最近在学习vue技术,开发表格的时候,想把表格做成组件,那查询条件就需要动态生成,这就遇到一个问题,vue怎么动态给v-model变量值。
UI框架使用的是iview
页面渲染(子组件)
<div class="ivu-card-body">
<Form ref="formInline" v-model="formInline" inline>
<Row type="flex" justify="end" align="middle"
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../js/vue-2.4.0 .js"></script>
<title>Documen
<input v-model="personName">
<input v-bind:value="personName" v-on:input="personName = $event.target.value">
但在遇到input[type="checkbox"]等非输入内容的input时,绑定的内容又不太一样,具体参见官网
Vue中v-model的使用
在Vue中,我们有时候需要对数据进行双向绑定,所谓的双向绑定的意思就是在Vue的data中定义的变量的值,当改变data中变量的值时,通过Mustache语法获取的值也发生改变,当童Mustache获取的值发生改变时,data的值也随之改变
v-model的基本使用:
示例代码:将data中的变量与输入框的值进行双向绑定:
<div id="app">
<input type="text" v-model="message">
遇到一个问题,就是如果变量名是text_right,的时候更改v-model的值,则text_right不会更新,如果改成textRight就会更新,目前还不知道原因,先记录下来
转载于:https://www.cnblogs.com/mrzhu/p/7462928.html...