测试数据:html
items: [ {name: '业务状态', id: 'taskState', data: [{name:'所有', id: 0},{name:'进行中', id: 1},{name:'已完成', id: 2},{name:'已归档', id: 3},{name:'已终止', id: 4}]}, {name: '业务状态', id: 'taskState', data: [{name:'所有', id: 0},{name:'进行中', id: 1},{name:'已完成', id: 2},{name:'已归档', id: 3},{name:'已终止', id: 4}]}, {name: '业务状态', id: 'taskState', data: [{name:'所有', id: 0},{name:'进行中', id: 1},{name:'已完成', id: 2},{name:'已归档', id: 3},{name:'已终止', id: 4}]}, {name: '业务状态', id: 'taskState', data: [{name:'所有', id: 0},{name:'进行中', id: 1},{name:'已完成', id: 2},{name:'已归档', id: 3},{name:'已终止', id: 4}]}, ]
难点:vue
代码:数组
// 解决办法 this.$set(this.items, 0, Object.assign({}, this.items[0], { active: 0, defaultActive: 0 })) // 实际应用 this.items.forEach((r, row) => { // 变量数组,给每一个对象附上默认值 this.$set(this.items, row, Object.assign({}, this.items[row], { thisActive: r.thisActive ? r.thisActive : 0, defaultActive: r.defaultActive ? r.defaultActive : 0, data: r.data ? r.data : [], pageIndex: r.pageIndex ? r.pageIndex : 1, pageSize: r.pageSize ? r.pageSize : 20, options: r.options ? r.options : {scrollbar: true, pullUpLoad: true}, ref: r.ref ? r.ref : 'scroll' + row })) })
这里解释一下,下列代码,是解决对象不能检测的问题,这里是一次性添加多个属性的方法。ide
let test = Object.assign({}, this.items[0], { active: 0, defaultActive: 0 })
下列代码,是解决数组检测不到的问题。(对象也能够用这个方法)
index--索引 'age'|| 13 分别表明对象里的 键||值测试
this.$set(this.items, index, test)) // 数组方法 this.$set(this.items[index], 'age', 13)) // 对象方法
以上解决方法代码,来自vue官方文档连接描述, 看不懂就本身按照文档的去敲一下。ui