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 相关文章推荐
cookie的复制与使用记住用户名实现代码
Nov 04 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
Aug 16 Javascript
Javascript自定义事件详解
Jan 13 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 Javascript
angularjs性能优化的方法
Sep 05 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
微信小程序 生成携带参数的二维码
Oct 23 Javascript
js实现全选和全不选功能
Jul 28 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
银行实习自我鉴定
2013/10/12 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
600字作文之感受大自然
2019/11/27 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android