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中的Document文档对象
Jan 16 Javascript
ie focus bug 解决方法
Sep 03 Javascript
jQuery中 noConflict() 方法使用
Apr 25 Javascript
Javascript 绘制 sin 曲线过程附图
Aug 21 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
详解AngularJS Filter(过滤器)用法
Dec 28 Javascript
js字符串与Unicode编码互相转换
May 17 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
Openlayers实现图形绘制
Sep 28 Javascript
js canvas实现俄罗斯方块
Oct 11 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数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Python实现按逗号分隔列表的方法
2018/10/23 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
教学实习自我评价
2014/01/28 职场文书
超市国庆节促销方案
2014/02/20 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
2015年派出所工作总结
2015/04/24 职场文书
通知函格式范文
2015/04/27 职场文书
Python时间操作之pytz模块使用详解
2022/06/14 Python