vue data对象添加新属性触发视图
2016-09-27 11:37
176 查看
<template> <div class="wrap open"> <a>{{test01.name}}</a> <a>{{test00}}</a> </div> </template> <script> export default { data(){ return { test01:{ sex:"boy" } } } ready(){ //this.test00=2222不起作用 this.$set("test00",2222)//test00:2222 ok //this.test01.name=1222;不起作用,因为test的name为新添加的属性,不能响应 this.$set('test01.name',1222);//test01:{sex:"boy",name:1222} ok } } </script>
如果直接使用this.test.name=1222不会起作用,因为受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在
data对象上才能让 Vue.js 转换它,才能让它是响应的。
不过,有办法在实例创建之后添加属性并且让它是响应的。
对于 Vue 实例,可以使用
$set(key, value)实例方法。
key也支持"test01.name"这种写法,之前一直没注意到。
相关文章推荐
- javascript动态添加、修改、删除对象的属性和方法
- [集成IronPython] 使CLR对象对动态语言更友好(一)—— 支持运行时添加删除属性
- JavaScript为对象原型prototype添加属性的两种方式
- 为某一个对象动态添加属性
- 动手实现扩展属性为对象动态添加获取数据(续)
- setAttribute()添加了事件属性,却无法触发事件的问题
- 在GObject对象中添加私有属性
- 添加自定义对象属性
- [Struts2] 如何访问或添加request/session/application属性, 以及获取对象.
- attachEvent() / addEventListener() 对象添加触发
- attachEvent() / addEventListener() 对象添加触发事件
- attachEvent() / addEventListener() 对象添加触发事件(转)
- JAVASCRIPT应用篇(1)--动态给对象添加属性
- 为CLR对象动态添加属性
- 为自己的RCP产品的视图和编辑器添加圆角标题栏属性
- attachEvent() / addEventListener() 对象添加触发事件(转)
- 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。
- C++实现自动为对象添加“属性”访问代码
- javascript: 高级技巧: window 对象也可以添加自定义属性, 无须等加载完毕
- javascript快速给对象添加属性