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 相关文章推荐
利用jQuery操作对象数组的实现代码
Apr 27 Javascript
jsTree 基于JQuery的排序节点 Bug
Jul 26 Javascript
javascript实现修改微信分享的标题内容等
Dec 11 Javascript
js实现精美的银灰色竖排折叠菜单
May 16 Javascript
纯JavaScript实现的分页插件实例
Jul 14 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 Javascript
Summernote实现图片上传功能的简单方法
Jul 11 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
vue-dialog的弹出层组件
May 25 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
layui递归实现动态左侧菜单
Jul 26 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
PHP经典的给图片加水印程序
2006/12/06 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
Linux机考试题
2015/07/17 面试题
应届中专生自荐书范文
2014/02/13 职场文书
规范化管理年活动总结
2014/08/29 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
Java实现注册登录跳转
2022/06/16 Java/Android