Estoy usando este complemento vue js: https://github.com/Godofbrowser/vuejs-dialog
Siguiendo la guía, estoy tratando de integrar un componente personalizado en mi diálogo. El cuadro de diálogo muestra pero no se muestra el contenido o el componente personalizado. Además, la configuración no parece funcionar.
¿Me estoy perdiendo de algo? Seguí la documentación.
Aquí está el contenido de mi main.js :
import VuejsDialog from 'vuejs-dialog'; import 'vuejs-dialog/dist/vuejs-dialog.min.css'; Vue.use(VuejsDialog); import CustomView from '@/components/HDSLogin'; const customView = 'my-unique-view-name'; Vue.dialog.registerComponent(customView, CustomView)Luego uso el siguiente método en mi componente para activar el diálogo
this.$dialog.alert( { view: customView, // can be set globally too, value is 'my-unique-view-name' html: false, animation: 'fade', okText: "Ok", cancelText: "Cancel", backdropClose: true }); Y defino mi componente CustomView en HdsLogin.vue :
<template> <div > <p>Content</p> </div> </template> <script> // import into project import Vue from 'vue'; import VuejsDialog from 'vuejs-dialog'; import VuejsDialogMixin from 'vuejs-dialog/dist/vuejs-dialog-mixin.min.js'; // only needed in custom components import 'vuejs-dialog/dist/vuejs-dialog.min.css'; Vue.use(VuejsDialog); export default { mixins: [VuejsDialogMixin], }; </script> <style scoped=""> button { width: 100%; margin-bottom: 10px; float: none; } </style>Con la configuración anterior, se muestra un cuadro de diálogo en blanco:
Este estaba lejos de ser fácil de detectar. Pero cometiste un pequeño error tipográfico siguiendo los ejemplos.
El this.$dialog.alert() toma 2 parámetros, su definición es:
Plugin.prototype.alert = function (message = null, options = {}) { message && (options.message = message) return this.open(DIALOG_TYPES.ALERT, options) } Entonces, debe definir el primer parámetro (como null , por ejemplo), antes de definir las options .
Su llamada debería verse así:
- this.$dialog.alert( { + this.$dialog.alert(null, { view: customView, // can be set globally too html: false, animation: 'fade', okText: "Ok", cancelText: "Cancel", backdropClose: true }); Además, es posible que no necesite todas esas importaciones en su componente HdsLogin .