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 相关文章推荐
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
May 07 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
Jan 25 Javascript
javascript实现列表切换效果
May 02 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
js实现旋转木马效果
Mar 17 Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
Vue 实现前端权限控制的示例代码
Jul 09 Javascript
关于Layui Table隐藏列问题
Sep 16 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
Aug 07 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的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python使用pymysql小技巧
2017/06/04 Python
Python中实现switch功能实例解析
2018/01/11 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
《假如》教学反思
2014/04/17 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
学习nginx基础知识
2021/09/04 Servers