Vue观看嵌套对象和每个道具

时间:2018-10-08 11:18:16

标签: javascript vue.js vuejs2 vue-component watch

我有一个想要监视的嵌套对象。 这是代码:

watch: {
        'input.source.location': {
            handler: () => {
                console.log("locations");
            }
        },
        'input': {
            handler: () => {
                console.log("all the rest");
            },
            deep: true
        }
    },

通过更改location道具,我希望仅打印“位置”。我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:0)

不能100%确认这是正确的答案,但这是可行的。我不知道vue是否有任何参数可以直接支持您的情况而无需使用in语句。

watch: {
        'input.source.location': {
            handler: () => {
                console.log("locations");
            }
        },
        'input': {
            handler: (newVal) => {
                if(newVal.source.location) return;
                console.log("all the rest");
            },
            deep: true
        }
    },

-或-

watch: {
        'input': {
            handler: (newVal) => {
                if(newVal.source.location) console.log("locations");
                else console.log("all the rest");
            },
            deep: true
        }
    },