Я могу опубликовать массив объектов в Vue, но у меня возникли проблемы с отправкой простого индексированного массива. Я даю упрощенный код, потому что думаю, что ответ очевиден для опытных.
Вот что у меня есть на данный момент ...
<section v-for="(item, index) in items">
<div>
<button @click.prevent="deleteItem(index)">delete</button>
<input type="text" v-model="item[index]" placeholder="enter your item here">
</div>
</section>
<div>
<button @click.prevent="addItem">add item</button>
</div>
Экземпляр Vue объект данных на данный момент:
data () {
return {
items: ['']
}
},
Что работает:
- Пользователь может добавлять / удалять строки в форме.
- Vue DevTools показывает мне индексированный массив с пустыми полями для каждой строки.
Сообщения об ошибках в консоли JS:
Я хотел бы видеть это в post ...
{ "items": ["item1 input value", "item2 input value"] }
Вместо этого я могу получить это только потому, что Vue не будет реагировать на изменения ввода ...
{ "items": ["", ""] }
Для сравнения, публикация массив объектов работает следующим образом:
<section v-for="(item, index) in items">
<div>
<button @click.prevent="deleteItem(index)">delete</button>
<input type="text" v-model="item.color" placeholder="enter color here">
<input type="text" v-model="item.price" placeholder="enter price here">
<input type="text" v-model="item.comment" placeholder="enter comment here">
</div>
</section>
<div>
<button @click.prevent="addItem">add item</button>
</div>
Объект данных экземпляра Vue:
data () {
return {
items: [{ color: '', price: '', comment: '' }]
}
},