В моем проекте vueJs у меня есть таблица, в которой отображаются данные о некоторых продуктах из базы данных.Когда я щелкаю по продукту tr, он должен открыть модал, который отображает форму для ввода дополнительной информации о продукте, по которому щелкнули, вот так:
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Product Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr v-for="prod in products" :key="prod.id">
<td>{{ prod.id }}</td>
<td>{{ prod.name }}</td>
<td><button class="btn btn-success btn-sm" @click.prevent="addStocks(prod)">Add Stock</button></td>
</tr>
</tbody>
</table>
Теперь в моем скрипте у меня есть метод, чтобы открыть модали передайте значение элемента, по которому щелкнули, модальному, как показано ниже:
addStocks(prod){
this.$modal.show('add-stocks')
this.newStock.unitPrice = prod.sellin_price
this.newStock.id = prod.id
this.newStock.name = prod.name
},
и мой объект данных
data() {
return {
newStock: {
id: null,
name: '',
size: '',
srln: '',
colour: '',
mfg: '',
expiry: '',
selling_price: ''
},
}
}
и модальный компонент
<modal name="add-stocks" height="auto" :draggable="true" :width="600">
<div class="modal-header">
<h4>Add new stock</h4>
</div>
<div class="modal-body form-horizontal">
<div class="form-group">
<label for="unitPrice" class="control-label col-md-2">Unit Price</label>
<div class="col-md-4">
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">₦</span>
<input class="form-control" v-model="newStock.unitPrice" readonly aria-describedby="basic-addon1">
</div>
</div>
<div style="clear:both"></div>
</div>
<div class="form-group">
//form fields here
</div>
<div class="modal-footer modal_btns">
<button class="btn btn-primary" @click.prevent="uploadStock">Save</button>
<button class="btn btn-danger" @click.prevent="cancelUpload">Cancel</button>
</div>
</modal>
Сейчаспроблема заключается в том, что когда я заполняю поля в модальном режиме и нажимаю кнопку отмены (без сохранения), я ожидаю, что поля будут очищены, поэтому при нажатии на другой продукт tr я получаю новую форму, но это неВ этом случае отображаются детали, заполненные в ранее закрытой модальной форме.В методах cancelUpload я очистил поля перед закрытием модального окна;
cancelUpload(){
this.$modal.hide('add-stocks')
this.newStock.unitPrice = prod.sellin_price
this.newStock.id = prod.id
this.newStock.name = prod.name
}
Когда я нажимаю кнопку сохранения и после вызова API я вызываю этот метод, чтобы скрыть модальное, но та же проблемапроисходит как отображение деталей, когда в следующий раз я открываю другой модальный.Как мне это исправить?