首页 > 解决方案 > 观看 vue-tags-input 变化

问题描述

我的应用程序中有 vue-tags-input 组件:

<vue-tags-input
    placeholder="np. x:10,y:10"
    v-model="tag"
    :tags="tags"
    :validation="validation"
    @tags-changed="allTags => tagsChanged(allTags)"
/>

我关注了文档,并且tags-changed正在执行我自己的映射对象数组的函数:

tagsChanged(tags) {
    this.mapsData.waypoints = tags.map(obj => { return obj.text });
    console.log(this.mapsData.waypoints);
}

尽管在控制台中我可以看到包含正确的值,但我无法看到钩子this.mapsData.waypoints中的这种变化:watch

watch: {
    'mapsData': {
        handler: function (val) {
            console.log(val); //never console
        },
        deep: true
    }
},

这个 console.log 从来没有真正控制台过任何东西。为什么?我需要这款手表使用此值将自定义事件发送到我的应用程序中的其他位置。我可以从tagsChanged方法发送,但我mapsData还包含其他值,我想从观察者发送所有内容。

标签: vue.jswatch

解决方案


由于某种原因,Vue 无法检测到这种变化,所以我需要自己触发它:

Vue.set(object, propertyName, value)

推荐阅读