Rendern Sie programmgesteuert mehrere modale Boxen in derselben Komponente in Vue
P粉627027031
2023-08-28 16:23:40
<p>In meiner Komponente habe ich drei Popup-Modale mit unterschiedlichem Inhalt. Durch Klicken auf eine bestimmte Schaltfläche muss ich das entsprechende Popup-Modal öffnen. </p>
<p>Das ist es, was ich tue
<strong>Für Schaltfläche 1 -</strong></p>
<pre class="brush:php;toolbar:false;"><s-button type="button" class="bl_btn" @click="onClickProdOpen"
Produktdetails
</s-button></pre>
<p><strong>Für dieses Modal 1 wird </strong></p>
<pre class="brush:php;toolbar:false;"><s-modal v-model="isShowPopup1" :title="$t('LBL_PROD_CONT')"
<meine-Komponente-eins
:pageId ="this.$options.name"
:popupDefaultTab="popupOpenDefaultTab"
:onClickClose="onClickclose"
/></pre>
<p><strong>Hier ist eine Schaltflächenklickmethode. Klicken Sie auf Ereignisse für mehrere verschiedene modale Felder wie dieses. </strong></p>
<pre class="brush:php;toolbar:false;">methoden: {
onClickProdOpen() {
this.isShowPopup1 = true;
this.popupOpenDefaultTab = 0;
}
}</pre>
<p><s-modal ist der benutzerdefinierte modale Boxteil, der Inhalt wird unterschiedlich sein. Also habe ich diesen modalen Code wiederholt und nur den Inhalt geändert, d. h. verschiedene untergeordnete Komponenten übergeben (MyComponentOne, MyComponentTwo...). </p>
<p>Wie kann ich also eine Switch-Case-Anweisung verwenden, um zu vermeiden, dass der modale Boxcode mehrmals wiederholt wird, und nur die innere Inhaltskomponente ändern? Alle Vorschläge werden hilfreich sein. </p>
一种选择是将每个模态框的状态放在一个对象中。这样,你就不需要为每个模态框添加一个数据属性。
如果模态框内的内容足够相似,你可以使用v-for,以相同的方式使用索引作为键。
https://codepen.io/timfranklin/pen/abWEwLy?editors=1111