Vue 数组中更新属性值后,视图不更新,等待其他元素更新后会触发的解决办法
2017-04-11 11:04
609 查看
因为 JavaScript 的限制,Vue.js 不能检测到下面数组变化:
直接用索引设置元素,如 vm.items[0] = {};
修改数据的长度,如 vm.items.length = 0。
this.examineIntro.questionList[0].selList[1].url = url;
为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set() 方法:
// 与
Vue.set(example1.items[0], { childMsg: 'Changed!'})
使用Vue的变异方法
pop()
push()
shift()
unshift()
revese()
sort()
splice()
也会触发视图更新
之前不知道前面的方式的时候我就是用先push再 pop解决的
直接用索引设置元素,如 vm.items[0] = {};
修改数据的长度,如 vm.items.length = 0。
this.examineIntro.questionList[0].selList[1].url = url;
为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set() 方法:
// 与
example1.items[0] = ...相同,但是能触发视图更新
Vue.set(example1.items[0], { childMsg: 'Changed!'})
使用Vue的变异方法
pop()
push()
shift()
unshift()
revese()
sort()
splice()
也会触发视图更新
之前不知道前面的方式的时候我就是用先push再 pop解决的
相关文章推荐
- 解决vue中对象属性改变视图不更新的问题
- vue—webapp 解决点击遮罩层会触发界面上其他元素的click事件问题
- 安装IE,出现“无法安装ie,因为其他程序或更新正在等待重新启动计算机。”解决方法。
- flash无法覆盖的问题_三种办法可以解决flash覆盖其他元素
- 块元素设置inline属性不能设置宽高的解决办法
- vue中对象属性改变视图不更新问题
- vue2.0关于set添加属性后视图不能更新的问题
- 安装IE,出现“无法安装ie,因为其他程序或更新正在等待重新启动计算机。”解决方法。
- Android 解决视图小而触发事件区域大的办法
- CUDA 两个向量相加: 当数组的元素个数大于所开的线程数量的时候的解决办法
- IE9及以下 span元素无法触发鼠标事件解决办法
- “可序列化”属性的不可继承,有其他办法解决吗?
- Asp.Net MVC Html.TextBoxFor日期格式化出错“模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式” 解决办法
- jquery中动态新增的元素节点无法触发事件解决办法
- 无法安装 Windows Internet Explorer 因为其他程序或更新正在等待重启您的计算机,解决方法
- MSSQL表中字段更新后,视图中的字段不更新的解决办法
- 安装win7 SP1后或者安装其他补丁后,在应用更新操作第XXX个文件时候遇到致命错误的解决办法
- [Phonegap+Sencha Touch] 移动开发16 安卓webview中,input输入框不触发backspace回退键事件的解决办法(带来其他bug,作废)
- $("#formId"). serialize()后台获取不到表单中属性为disabled的元素的值的解决办法
- python2.7下不能正常输出中文数组某个元素的解决办法