Наблюдайте за изменением входных тегов - PullRequest
0 голосов
/ 06 июля 2019

В моем приложении есть компонент ввода vue-tags:

<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 hook:

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

этот console.log никогда на самом деле ничего не утешает. Зачем? Мне нужны эти часы, чтобы отправить пользовательское событие в другое место в моем приложении с этим значением. Я могу просто отправить из tagsChanged метода, но мой mapsData содержит также другие значения, и я хочу отправить все из watcher.

1 Ответ

1 голос
/ 06 июля 2019

Vue по какой-то причине не может обнаружить это изменение, поэтому мне нужно активировать его самостоятельно:

Vue.set(object, propertyName, value)
...