Я следовал ответу ниже, чтобы динамически работать с добавлением строки. Это ссылка
Все в порядке, пока я не хотел динамически удалять строки. Я использовал сращивание для удаления строки, но моя проблема в том, что изображения, которые я выбрал для каждой строки, испортились после удаления выбранной строки.
На изображениях ниже можно различить.
Итак, как вы можете видеть, изображения, которые я выбрал для этих строк: 1, 2 и 3.
Теперь яудалите вторую строку с именем изображения 2.
Мой ожидаемый результат - файл должен быть 3, так как я удалил 2-ую строку. 2-й ряд удаляется, но метка изображения остается прежней.
Это мой код.
<div
class="row"
style="margin-bottom: 10px;"
v-for="(item, index) in form.rowData"
:key="index"
>
<div class="col-md-3">
<div class="form-group">
<label for="inputSelect" class="col-lg-3">Amount</label>
<div class="col-lg-8">
<div class="bs-component">
<input
v-model="form.rowData[index].amount"
type="number"
step="0.01"
id="inputStandard"
class="form-control"
/>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="inputSelect" class="col-lg-3">Image</label>
<div class="col-lg-8">
<div>
<input
v-if="uploadReady"
type="file"
:name="index"
accept="image/*"
@change="onFileChange"
/>
</div>
</div>
</div>
</div>
<div class="col-md-1">
<div v-if="index == form.rowData.length -1">
<a @click="addItem">
<span style="font-size:30px;" class="fa fa-plus-circle" />
</a>
</div>
<div v-else>
<a @click="removeItem(index)">
<span style="font-size:30px; color: red;" class="fa fa-times-circle" />
</a>
</div>
</div>
</div>
methods: {
addItem() {
var my_object = {
amount: "",
image: ""
};
this.form.rowData.push(my_object);
},
removeItem(index) {
this.form.rowData.splice(index, 1);
},
}
Кто-нибудь может помочь с этой проблемой? Я использую vueJs и использовал splice для удаления элемента в rowData.