改变了值,但是dom并没有刷新,求问什么情况?
第二个select的数据已经是{},但是dom上还是显示“全部city”
因为 JavaScript 的限制,Vue.js 不能检测到下面数组变化:
直接用索引设置元素,如 vm.items[0] = {};
修改数据的长度,如 vm.items.length = 0。
为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set() 方法:
// 与 example1.items[0] = ...
相同,但是能触发视图更新
example1.items.$set(0, { childMsg: 'Changed!'})
至于问题 (2),只需用一个空数组替换 items。
改成这样试试:
this.filter.condition[0].children.$set(1, {});
文档中说过这个问题,链接。
改变数组元素使用 $set()
或 vue 包装过的变异方法。