2 回答

TA貢獻1794條經驗 獲得超8個贊
最簡單的方法是watch更改選項:
new Vue({
el: '#app',
data() {
return {
input: {
des: ''
},
show: false
}
},
methods: {
openModal() {
this.show = true;
document.body.classList.add('overflow-hidden');
}
},
watch: {
'input.des'(val) {
if (val === 'New') {
//this.$refs.modalName.openModal();
this.openModal();
alert('Modal opened');
}
}
}
})
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
<div id="app">
<select v-model="input.des">
<option value="A">A</option>
<option value="B">B</option>
<option value="New">New</option>
</select>
</div>

TA貢獻1877條經驗 獲得超6個贊
您可以從 中獲取所選選項的選定值event.target
。
將您的代碼更改為:
<select v-model="input.des" @change="$refs.modalName.openModal">? ? ? ? ? ? ??
? ? <option value="A">A</option>
? ? <option value="B">B</option>
? ? <option value="New">New</option>
</select>
openModal(event) {
? ? if (event.target.value == "New") {
? ? ? ? this.show = true;
? ? ? ? document.querySelector("body").classList.add("overflow-hidden");
? ? }
},
添加回答
舉報