Restituer par programme plusieurs boîtes modales dans le même composant dans Vue
P粉627027031
P粉627027031 2023-08-28 16:23:40
0
1
521
<p>Dans mon composant, j'ai trois modaux contextuels avec un contenu différent. En cliquant sur un bouton spécifique, je dois ouvrir la fenêtre contextuelle correspondante. </p> <p>C'est ce que je fais <strong>Pour le bouton 1 -</strong></p> <pre class="brush:php;toolbar:false;"><s-button type="button" class="bl_btn" @click="onClickProdOpen"> détails du produit </bouton s></pre> <p><strong>Pour ce modal 1 sera </strong></p> <pre class="brush:php;toolbar:false;"><s-modal v-model="isShowPopup1" :title="$t('LBL_PROD_CONT')" <mon-composant-un :pageId ="this.$options.name" :popupDefaultTab="popupOpenDefaultTab" :onClickClose="onClickclose" /></pré> <p><strong>Voici une méthode de clic sur un bouton. Cliquez sur les événements pour plusieurs boîtes modales différentes comme celle-ci. </strong></p> <pre class="brush:php;toolbar:false;">méthodes : { onClickProdOpen() { this.isShowPopup1 = vrai ; this.popupOpenDefaultTab = 0 ; } }</pré> <p><s-modal est la partie de la boîte modale personnalisée, le contenu sera différent. J'ai donc répété ce code modal et juste changé le contenu, c'est-à-dire passé différents composants enfants (MyComponentOne, MyComponentTwo...). </p> <p>Alors, comment puis-je utiliser une instruction switch case pour éviter de répéter le code de la boîte modale plusieurs fois et simplement modifier le composant de contenu interne ? Toutes les suggestions seront utiles. </p>
P粉627027031
P粉627027031

répondre à tous(1)
P粉256487077

Une option consiste à mettre l'état de chaque modal dans un objet. De cette façon, vous n'avez pas besoin d'ajouter un attribut de données à chaque modal.

Si le contenu à l'intérieur du modal est suffisamment similaire, vous pouvez utiliser v-for, en utilisant l'index comme clé de la même manière.

<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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!