cari

Rumah  >  Soal Jawab  >  teks badan

Buat berbilang kotak modal secara pemrograman dalam komponen yang sama dalam Vue

<p>Dalam komponen saya, saya mempunyai tiga modal timbul dengan kandungan berbeza. Dengan mengklik pada butang tertentu, saya perlu membuka modal pop timbul yang sepadan. </p> <p>Inilah yang saya lakukan <strong>Untuk Butang 1 -</strong></p> <pre class="brush:php;toolbar:false;"><s-button type="button" class="bl_btn" @click="onClickProdOpen"> Maklumat produk </s-button></pre> <p><strong>Untuk modal 1 ini akan menjadi </strong></p> <pre class="brush:php;toolbar:false;"><s-modal v-model="isShowPopup1" :title="$t('LBL_PROD_CONT')" <komponen-saya :pageId ="ini.$options.name" :popupDefaultTab="popupOpenDefaultTab" :onClickClose="onClickclose" /></pra> <p><strong>Berikut ialah kaedah klik butang. Klik acara untuk berbilang kotak modal berbeza seperti ini. </strong></p> <pre class="brush:php;toolbar:false;">kaedah: { onClickProdOpen() { this.isShowPopup1 = benar; this.popupOpenDefaultTab = 0; } }</pre> <p><s-modal ialah bahagian kotak modal tersuai, kandungannya akan berbeza. Jadi, saya mengulangi kod modal ini dan hanya menukar kandungan, iaitu lulus komponen anak yang berbeza (MyComponentOne, MyComponentTwo...). </p> <p>Jadi, bagaimanakah saya boleh menggunakan pernyataan kes suis untuk mengelak daripada mengulangi kod kotak modal beberapa kali dan hanya menukar komponen kandungan dalaman? Sebarang cadangan akan membantu. </p>
P粉627027031P粉627027031460 hari yang lalu574

membalas semua(1)saya akan balas

  • P粉256487077

    P粉2564870772023-08-29 09:56:52

    Satu pilihan ialah meletakkan keadaan setiap modal dalam objek. Dengan cara ini, anda tidak perlu menambah atribut data pada setiap modal.

    Jika kandungan di dalam modal cukup serupa, anda boleh menggunakan v-for, menggunakan indeks sebagai kunci dengan cara yang sama.

    <b-modal v-model="modal_states[1]">模态框1</b-modal>
        <b-button @click="openModal(1)">打开1</b-button>
        
        <b-modal v-model="modal_states[2]">模态框2</b-modal>
        <b-button @click="openModal(2)">打开2</b-button>
        
        <b-modal v-model="modal_states[3]">模态框3</b-modal>
        <b-button @click="openModal(3)">打开3</b-button>
    data: {
        modal_states: {},
      },
      methods: {
        openModal(index){
          this.modal_states = {[index.toString()]:true}
        }
      },

    https://codepen.io/timfranklin/pen/abWEwLy?editors=1111

    balas
    0
  • Batalbalas