关于vue双向数据绑定实践(element-ui)

项目有一个优化需求,原项目截图如下:
在这里插入图片描述
这是一个输入框,因为业务关系,被放到了表格里边,导致整个输入框很小,输入数据时很不方便。

所以我想的一个优化方案是,当点击这个输入框时,会弹出一个更大的输入框,用户可在这个弹出框里输入数据,然后再把这个弹出框的内容传回这个小输入框。
具体效果如下:
在这里插入图片描述
点击编辑按钮之后,弹出如下框:
在这里插入图片描述
点击确定后,弹窗里的内容同步到小框框里。
具体实现方法:
小框框添加一个点击事件,点击之后打开弹窗:openDialog()

这个弹窗使用el-dialog组件,里面存的是一个form表单,表单绑定一个对象,具体代码如下:

<el-dialog title="请输入数据源" :visible.sync="ifView">
    <el-form v-model='inputObject'>
        <el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="inputObject.data"></el-input>
    </el-form > 
    <div slot="footer">
        <el-button @click="cancel()" size="mini">取 消</el-button>
        <el-button type="primary" @click="confirm()" size="mini">确 定</el-button>
    </div>
 </el-dialog>

这样,输入的内容就会绑定到inputObject的data属性上,但是如何把这个值传到原来的输入框上呢,请教了一下我的导师,他说,只需要把原输入框的对象,赋值给inputObject就可以了,这里需要注意的是原输入框的内容是绑定在rows对象的data属性上的。
具体实现如下:

openDialog(rows){
     this.ifView = true;
     this.inputObject = rows;
  },

这样,根据vue的双向数据绑定,rows上的data属性会跟inputData上的data属性变化。
原理如下:
vue具有双向数据绑定的特性,所以,在弹窗上输入值之后,inputObject上的data属性会相应改变,因为el-input绑定的值是inputObject.data,那么为什么rows.data也会相应跟着改变呢,原因就是对象是引用类型, this.inputObject = rows; 这句语句只是把rows的引用赋值给inputObject,如下图:在这里插入图片描述
所以当修改inputObject里的data值,rows里的data值也会相应改变。

今天被导师嫌弃技术不好,难受,接下来要努力学习and工作了!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值