首页 > 解决方案 > Vue Js 在 vue-js-modal 中打开画板

问题描述

我是新手Vue并试图在里面打开画板vue-js-modal

我不确定我在这里做错了什么。

我正在使用VueModalvue-signature-pad

它在页面上运行良好,但我无法让它在模式中运行。

这是codesandbox的链接

App.vue代码如下

<template>
  <div id="app">
    <v-dialog />
    <div class="container">
      <div class="row">
        <div class="col-12 mt-2">
          <div class="col-6 mt-2">
            <button class="btn btn-secondary" @click="showButtonsDialog">
              Open Dialog
            </button>
          </div>
        </div>
       <div class="col-12 mt-2">
          <VueSignaturePad
            id="signature"
            width="100%"
            height="100%"
            ref="signaturePad"
          />
        </div>            
      </div>
    </div>
  </div>
</template>

<script>
    export default {
    name: "App",
    methods: {
       showButtonsDialog() {
           this.$modal.show("dialog", {
           title: "Some Title",
           text:'<VueSignaturePad id="signature" width="100%" height="200px" ref="signaturePad"/>',
           buttons: [
           {
               title: "CANCEL",
               handler: () => {
                   this.$modal.hide("dialog");
               }
           }]
          });
        }
      }
    };    
</script>

我在这里做错了什么?

谢谢

标签: javascriptvue.jsvuejs2

解决方案


我认为text只能使用纯文本,而不是 Vue 组件。要将 Vue 组件包含在您的模态中,您可以在模板中声明它

  <modal name="example"
   width="80%"
   height="80%">
      <VueSignaturePad
        id="signature"
        width="100%"
        height="100%"
        ref="signaturePad"
      />
  </modal>

当你想展示它时

showButtonsDialog() {
  this.$modal.show("example")
}

Codesandbox演示


推荐阅读