Вю "родитель-ребенок" функцию emit нарушает V-модели обязательного
Работа над исправлением ошибки в чужом коде, поэтому я пытаюсь ограничить то, что я должен изменить здесь.
Похоже, когда я использую $emit
Затем имеется дочерний компонент:
ChildComponent.вю
<template>
<child-component v-bind:items="this.items"
v-on:event_child="this.eventUpdater">
</child-component>
<template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
'child-component': ChildComponent
},
methods: {
getItemDetails() {
//...ajax request that loads item details for page.
},
eventUpdater: function(id) {
this.getItemDetails();
}
}
}
</script>
После обновления моего первоначального элемента (который обновляет нормально), я иду обновить другой элемент, и кажется, что v-модель для этого элемента не работает. Нарушает ли функциональность <template>
<div v-for="item in items">
<input v-model="item.itemId">
</div>
<button v-on:click="updateItems">update</button>
</template>
<script>
export default {
props: ['items'],
methods: {
updateItems() {
//...ajax call that updates items.
this.emitWhat();
},
emitWhat: function () {
this.$emit('event_child');
}
}
}
</script>
привязку v-модели после первоначальной загрузки? Как мне это исправить?


Ответы - Вю "родитель-ребенок" функцию emit нарушает V-модели обязательного / Vue parent-child emit function is breaking v-model binding

27.01.2020 10:35:12
Вы используете это:
<child-component v-bind:items="this.items"
v-on:event_child="this.eventUpdater">
но стоит воспользоваться этим:
<child-component v-bind:items="items"
v-on:event_child="eventUpdater">
Убрал this.
.
Также я не нашел items
в качестве data
параметр id в id
, вы должны eventUpdater: function(id)
его следующим образом:
emit
Upd.Два
Также у вас есть v-образная модель на <template>
<div v-for="item in items">
<input v-model="item.itemId">
</div>
<button v-on:click="updateItems(item.itemId)">update</button>
</template>
updateItems(id) {
//...ajax call that updates items.
this.emitWhat(id);
},
emitWhat: function (id) {
this.$emit('event_child', id);
}
, который может быть проблемой:
item.itemId
Вы могли бы рассмотреть возможность привязки <input v-model="item.itemId">
к v-model
как это:
newItems