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 相关文章推荐
兼容Mozilla必须知道的知识。
Jan 09 Javascript
jQuery 工具函数学习资料
Apr 29 Javascript
jquery 图片轮换效果
Jul 29 Javascript
理解Javascript_09_Function与Object
Oct 16 Javascript
取消选中单选框radio的三种方式示例介绍
Dec 23 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
cookie的secure属性详解
Apr 08 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
Jul 12 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
JavaScript十大取整方法实例教程
Dec 03 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
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
jquery cookie插件代码类
2009/05/26 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
js操作二进制数据方法
2018/03/03 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
JPype实现在python中调用JAVA的实例
2017/07/19 Python
python如何在循环引用中管理内存
2018/03/20 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
公司年会晚宴演讲稿
2014/01/06 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
学生打架检讨书
2014/10/20 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
学校安全管理制度
2015/08/06 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
Mysql基础之常见函数
2021/04/22 MySQL