搜索
"Bootsrap-Vue Modal的hide方法无效"
P粉428986744
P粉428986744 2023-08-25 17:59:43
[Vue.js讨论组]
<p>我有一个简单的<code>bootstrap-vue modal</code>,其中包含一个<code>input text</code>。我希望按下<code>Ok</code>按钮时不会自动关闭,所以我使用了"prevent"。然后我进行一些验证,然后希望使用"hide"方法关闭它。但是对我来说不起作用。奇怪的是show方法完全正常工作。我查看了文档,找不到错误所在。如何使hide方法在那一点上对我起作用? 这是我的代码。</p> <pre class="brush:js;toolbar:false;">&lt;template&gt; &lt;div&gt; &lt;b-button size=&quot;sm&quot; class=&quot;m-2&quot; variant=&quot;primary&quot; @click=&quot;grfGuardarBtnPredefAccions()&quot; &gt;Guardar gráfica personalizada&lt;/b-button &gt; &lt;b-modal id=&quot;grfModalGuardar&quot; ref=&quot;grfGuardarModal&quot; title=&quot;Insertar nombre&quot; @ok.prevent=&quot;grfModalOk&quot; @cancel=&quot;grfModalCancel&quot; &gt; &lt;p&gt; Debe asignar un nombre a la gráfica personalizada que desea guardar. &lt;/p&gt; &lt;b-form-input v-model=&quot;grfModalPersoName&quot; placeholder=&quot;Escriba aquí ...&quot; &gt;&lt;/b-form-input&gt; &lt;/b-modal&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { name: &quot;GrafTopMenu&quot;, components: { GrafEditor, }, data() { return { // almacena el nombre que el usuario le pone a la gráfica personalizada que va a guardar. grfModalPersoName: &quot;&quot;, }; }, computed: {}, methods: { /** acciónes que realiza el botón de guardar gráfica personalizada*/ grfGuardarBtnPredefAccions() { let errormsg = &quot;&quot;; if (this.grfTableGrafica.tableConf.items.length == 0) { errormsg += errormsg + &quot;No puede guardar una gráfica vacía&quot;; } if (!errormsg) { this.$refs.grfGuardarModal.show(); } else { generalUtils.makeToast( &quot;danger&quot;, 3000, &quot;No puede guardar una gráfica vacía&quot; ); } }, grfModalOk() { if (!this.grfModalPersoName.trim()) { generalUtils.makeToast( &quot;danger&quot;, 3000, &quot;El nombre no puede estar vacío&quot; ); } else { console.log(&quot;ok&quot;); console.log(&quot;this.grfModalPersoName :&gt;&gt; &quot;, this.grfModalPersoName); console.log(&quot;this.grfTableGrafica&quot;, this.grfTableGrafica); this.$refs[&quot;grfGuardarModal&quot;].hide(); // this.$refs.grfGuardarModal.hide(); } }, grfModalCancel() { this.grfModalPersoName = &quot;&quot;; }, }, }; &lt;/script&gt; &lt;style&gt; &lt;/style&gt; </pre> <p>我尝试的语法:</p> <pre class="brush:js;toolbar:false;"> this.$refs.grfGuardarModal.hide(); this.$refs['grfGuardarModal'].hide(); this.$bvModal.hide('grfGuardarModal'); </pre>
P粉428986744
P粉428986744

全部回复(2)
P粉020556231

编辑:你使用了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模态框。

请查看文档

P粉344355715

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

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

this.$nextTick(() => {      
  this.$bvModal.hide('grfGuardarModal')
})
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号