Restituer par programme plusieurs boîtes modales dans le même composant dans Vue
P粉627027031
2023-08-28 16:23:40
<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>
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.
https://codepen.io/timfranklin/pen/abWEwLy?editors=1111