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+CSS 实现的超Sexy下拉菜单
Jan 17 Javascript
js调用css属性写法
Sep 21 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
js+canvas绘制矩形的方法
Jan 28 Javascript
BootStrap下jQuery自动完成的样式调整
May 30 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
基于js中style.width与offsetWidth的区别(详解)
Nov 12 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
JS实现可视化音频效果的实例代码
Jan 16 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
Jul 17 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
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&amp;mysql 日期操作小记
2012/02/27 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
Python入门之modf()方法的使用
2015/05/15 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
python 如何上传包到pypi
2020/12/24 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
大学生简短的自我评价
2014/09/12 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
2016银行求职自荐信
2016/01/28 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python
windows系统安装配置nginx环境
2022/06/28 Servers