P粉4211197782023-08-31 15:02:18
要在按下按鈕時僅顯示輸入框,您應該使用 v-if
並檢查項目中是否存在該鍵。
我將為 description
提供一個範例,但您可以將其套用到所有想要的輸入框。
因此,當您新增項目時,請勿新增 description
,如下所示:
methods: { addInvoice() { this.invoiceItems.push({ name: "", quantity: 0, unit_price: 0, vat_rate: 18, net_total: 0, }); }, },
並檢查 item.description
是否存在於 description
的 input
中:
<div class="col-md-2"> <input type="text" v-if="item.description !== undefined" v-model="item.description" placeholder="description"> </div> ... <button class="btn btn-primary btn-sm" @click="addDesc(index)" >Add Description</button> ... <div class="col-md-2"> <button class="btn btn-danger btn-sm" @click="deleteDesc(index)" >Delete Desc.</button> </div>
addDesc
方法將向專案新增該鍵並將其設為空:
addDesc(index){ Vue.set(this.invoiceItems[index], "description", ""); }
deleteDesc
方法將完全從專案中刪除該鍵:
deleteDesc(index){ Vue.delete(this.invoiceItems[index], "description"); }
現在,當您點擊add description
按鈕時,description
輸入框將出現,當您點擊delete description
按鈕時,description
輸入框將會消失。