为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅在单击“新建”选项时打开我的模式?

如何仅在单击“新建”选项时打开我的模式?

弑天下 2023-08-18 14:13:33
仅当我单击“新建”选项时,我才尝试在 VueJS 中打开我的模式,我该怎么做?      <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() {  this.show = true;  document.querySelector("body").classList.add("overflow-hidden");},
查看完整描述

2 回答

?
幕布斯7119047

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/vue@2.6.12/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>


查看完整回答
反对 回复 2023-08-18
?
慕哥9229398

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");

    }

},


查看完整回答
反对 回复 2023-08-18
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信