vue数据双向绑定的注意点


Posted in Javascript onJune 23, 2017

最近一个vue和element的项目中遇到了一个问题: 动态生成的对象进行双向绑定是失败

直接贴代码:

<el-form :model="addClass" :rules="rules" ref="addClass">
   <el-form-item label="表单分类名称" prop="NAME" :label-width="formLabelWidth">
      <el-input v-model="addClass.NAME" auto-complete="off"></el-input>
   </el-form-item>
   <el-form-item label="表单分类描述" prop="DESCRIBE" :label-width="formLabelWidth">
      <el-input type="textarea" autosize row=5 v-model="addClass.DESCRIBE" auto-complete="off"></el-input>
   </el-form-item>
 </el-form>

上面一个简单的element的表单;addClass就是我要将数据绑定到的对象;他初始是一个空对象;我需要在其他地方读取然后给他添加属性,同时给表单进行绑定。

在这个过程中就发现,双向绑定失败了 , 而且也没有报错。

我是通过obj.xxx = xxx;这种方法进行绑定; 经过测试发现双向绑定并没有实现。

解决方法:

参照 VUE官方文档: https://cn.vuejs.org/v2/guide/reactivity.html ;

受现代 JavaScript 的限制(以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。例如:

var vm = new Vue({
 data:{
 a:1
 }
})
// `vm.a` 是响应的
vm.b = 2
// `vm.b` 是非响应的

Vue 不允许在已经创建的实例上动态添加新的根级响应式属性(root-level reactive property)。然而它可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上:

Vue.set(vm.someObject, 'b', 2)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript RadioButtonList获取选中值
Apr 09 Javascript
JavaScript 闭包深入理解(closure)
May 27 Javascript
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
jquery里的each使用方法详解
Dec 22 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
手机端转换rem适应
Apr 01 Javascript
JS ES6多行字符串与连接字符串的表示方法
Apr 26 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
antd Select下拉菜单动态添加option里的内容操作
Nov 02 Javascript
Vue.js常用指令的使用小结
Jun 23 #Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 #Javascript
JavaScript对象_动力节点Java学院整理
Jun 23 #Javascript
JavaScript订单操作小程序完整版
Jun 23 #Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 #Javascript
JavaScript实现简单的树形菜单效果
Jun 23 #Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 #Javascript
You might like
VOLVO车载收音机
2021/03/02 无线电
10条PHP编程习惯助你找工作
2008/09/29 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
vue中activated的用法
2021/01/03 Vue.js
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python书单 不将就
2017/07/11 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
大学专科自荐信
2014/06/17 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书