vue watch同时监听对象里面的多个属性貌似不行 大神们搭把手!!!
发布于 7个月前 作者 zap123456 2348 次浏览 来自 问答

var dataTime = { 'year’: 2018,’month’:12 } var vm = new Vue({ el: '#reportType’, data: { 'year’: 2018,’month’:12 } })

vm.$watch('year.month', 
    function (newVal, oldVal) {
      // 这个回调将在 `vm.a`  改变后调用
      alert(newVal+'--'+oldVal);
    }//,{'deep':true}//深度监听
)
5 回复

watch('year’,fn) awtch('month’,fn)

wacth对象的属性可能不行,可以wacth computed方法,用computed方法返回对象的属性,这个方法总是可行的,computed方法很厉害。

在es6中写法,利用动态属性名, [‘year.month’] {console.log(newVal)} 这样你就可以检测到对象下面某个属性值的变化了

深度watch 可以监听到对象里面属性的变化 去vue官网搜搜这个. 看能不能解决你的问题.

你定义变量关系就写错了。 month是year对象的属性吗? 都不存在自然监听不到 var vm = new Vue({ el: '#reportType’, data: { time: {’year’: 2018,’month’:12} } })

vm.$watch(‘time.month’, // 或者’time.year’ //如果监听time对象,就开启深度监听 function (newVal, oldVal) { // 这个回调将在 vm.a 改变后调用 alert(newVal+’–’+oldVal); }//,{’deep’:true}//深度监听 )

回到顶部