suchen

Heim  >  Fragen und Antworten  >  Hauptteil

„Die Hide-Methode von Bootsrap-Vue Modal ist ungültig“

<p>Ich habe ein einfaches <code>bootstrap-vue-Modal</code>, das einen <code>Eingabetext</code> enthält. Ich möchte, dass die Schaltfläche <code>Ok</code> nicht automatisch geschlossen wird, wenn ich sie drücke, also verwende ich „Verhindern“. Dann führe ich eine Validierung durch und möchte sie dann mit der Methode „ausblenden“ schließen. Funktioniert aber bei mir nicht. Das Merkwürdige ist, dass die Show-Methode völlig einwandfrei funktioniert. Ich habe die Dokumentation überprüft und kann nicht finden, wo der Fehler liegt. Wie sorge ich dafür, dass die Methode zum Ausblenden an diesem Punkt für mich funktioniert? Hier ist mein Code. </p> <pre class="brush:js;toolbar:false;"><template> <div> <b-Taste Größe="sm" class="m-2" Variante="primär" @click="grfGuardarBtnPredefAccions()" >Personalisierte Grafik anzeigen</b-Taste > <b-modal id="grfModalGuardar" ref="grfGuardarModal" title="Namen einfügen" @ok.prevent="grfModalOk" @cancel="grfModalCancel" > <p> Sie müssen der personalisierten Grafik einen Namen zuweisen, den Sie schützen möchten. </p> <b-form-input v-model="grfModalPersoName" placeholder="Hier schreiben ..." ></b-form-input> </b-modal> </div> </template> <script> Standard exportieren { Name: "GrafTopMenu", Komponenten: { GrafEditor, }, Daten() { zurückkehren { // speichert den Namen, den der Benutzer dem zu speichernden benutzerdefinierten Diagramm gibt. grfModalPersoName: "", }; }, berechnet: {}, Methoden: { /**Aktionen, die von der Schaltfläche „Benutzerdefiniertes Diagramm speichern“ ausgeführt werden*/ grfSaveBtnPredefActions() { let errormsg = "" if (this.grfTableGrafica.tableConf.items.length == 0) { errormsg += errormsg + "Ein leeres Diagramm kann nicht gespeichert werden"; } if (!errormsg) { this.$refs.grfSaveModal.show(); } anders { generalUtils.makeToast( „Gefahr“, 3000, „Sie können ein leeres Diagramm nicht speichern.“ ); } }, grfModalOk() { if (!this.grfModalPersoName.trim()) { generalUtils.makeToast( „Gefahr“, 3000, „Der Name darf nicht leer sein.“ ); } anders { console.log("ok"); console.log("this.grfModalPersoName :>> ", this.grfModalPersoName); console.log("this.grfTableGrafica", this.grfTableGrafica); this.$refs["grfSaveModal"].hide(); // this.$refs.grfSaveModal.hide(); } }, grfModalCancel() { this.grfModalPersoName = ""; }, }, }; </script> <Stil> </style> </pre> <p>我尝试的语法:</p> <pre class="brush:js;toolbar:false;"> this.$refs.grfSaveModal.hide(); this.$refs['grfSaveModal'].hide(); this.$bvModal.hide('grfSaveModal'); </pre>
P粉428986744P粉428986744486 Tage vor603

Antworte allen(2)Ich werde antworten

  • P粉020556231

    P粉0205562312023-08-26 15:11:58

    编辑:你使用了v-model吗?将数据传递给v-model,并在需要时更新它

    你还有另一个选择。

    <b-modal id="bv-modal-example" hide-footer></b-modal>
    //在script标签中
    this.$bvModal.hide('bv-modal-example')

    或者你可以使用v-model属性来控制Bootstrap Vue模态框。

    请查看文档

    Antwort
    0
  • P粉344355715

    P粉3443557152023-08-26 11:19:55

    问题在于您试图在同一个时刻关闭它,同时又阻止它关闭。

    您可以通过使用this.$nextTick将隐藏方法延迟到下一个时刻来解决这个问题。

    this.$nextTick(() => {      
      this.$bvModal.hide('grfGuardarModal')
    })
    

    Antwort
    0
  • StornierenAntwort