时间:2021-05-26
最近一个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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vue和react的主要区别有: 1、vue是响应式的数据双向绑定系统,而react是单向数据流,没有双向绑定。 2、vue的语法较为简单,适用于小型项目创
本文实例讲述了vue实现的双向数据绑定操作。分享给大家供大家参考,具体如下:经典的双向数据绑定修改msg{{msg}}{{"用户修改的数据:"+userAddr
vue双向绑定数据如何限制长度?具体方法请阅读文章问题描述vue中输入框v-modle双向绑定的数据;在需要的业务场景下需要对其进行字数长度限制;解决方案可以使
数据绑定1.单向绑定{{massage}}varapp=newVue({el:"#app",data:{message:"Hello,vue.js!"}2.双向
我用Vue.js实现微信朋友圈的一些功能,实现展示朋友圈,评论,点赞。先构造一个vue的实例,对会更改的数据进行双向绑定,我用JSON伪造模版数据,先实现显示朋