Framework Angular

Diálogo de confirmación con Angular Material

Resumen: utilizar el componente MatDialog de Angular Material para mostrar un diálogo de confirmación, y de la misma manera ejemplificar cómo usar diálogos en Angular utilizando componentes y plantillas personalizadas.

Al final vamos a tener un ejemplo de un diálogo de confirmación con Material Design en donde podremos saber si el usuario hizo click en o en No.

Mira el resultado final aquí.

Primeros pasos

Comienza por instalar la CLI de Angular si no la tienes. Después, crea un proyecto y agrega Material Design.

Una vez que cumplas esos pasos, comencemos.

Agregar componente de diálogo

El diálogo en sí es un componente así que vamos a crear el diálogo con:

ng g component dialogo-confirmacion

La vista del diálogo

El contenido HTML es el siguiente:

See the gist on github.

Ya desde la vista vemos de qué se trata. Tenemos el título que es estático; y un mensaje que será una propiedad pasada desde el componente que invoque al diálogo de Material Design.

También tenemos dos botones; uno que cierra el diálogo y otro que lo cierra pero indica que la acción fue confirmada. El atributo cdkFocusInitial es para que esté enfocado el botón y así el usuario pueda presionar Enter.

Programación de diálogo en Angular con TypeScript

Después vemos la lógica del componente:

See the gist on github.

Comenzamos importando MatDialogRef y MAT_DIALOG_DATA. Estos componentes van a permitir tener una referencia al componente y permitir pasar datos desde otro lugar, respectivamente.

Aquí hay un punto importante, estamos inyectando datos de tipo string con @Inject; en este caso es una cadena, pero puedes pasar cualquier tipo de dato.

Después tenemos la referencia al diálogo como lo decía al principio. Es un MatDialogRef de tipo DialogoConfirmacionComponent (es decir, nos estamos refiriendo al mismo componente).

Finalmente tenemos los métodos. Ambos invocan al método close pero uno le pasa false y uno true. Esto indica si el usuario ha confirmado, o no.

Dependencia de componente

En app.module.ts importamos MatDialogModule así como nuestro componente.

Adicional a ello también necesitamos BrowserAnimationsModule (ya que hay animaciones en el diálogo) y MatButtonModule para los botones: tanto para mostrar el diálogo como para seleccionar una respuesta.

See the gist on github.

Después en imports colocamos los módulos y en entryComponentes (así como en declarations en caso de que no esté) indicamos el componente :

See the gist on github.

Eso es todo lo que necesitamos para configurar el diálogo. Es momento de usar esta confirmación con Angular Material.

Usando nuestro diálogo

En cualquier lugar en donde vayamos a usar el diálogo debemos importar MatDialog y nuestro componente de diálogo. En mi caso:

See the gist on github.

Y en el constructor inyectar un diálogo de  tipo MatDialog. Así:

See the gist on github.

Aquí viene la parte más importante. Encerramos el comportamiento en una función llamada mostrarDialogo. Después invocamos al método open de nuestro diálogo previamente inyectado.

El primer argumento es el componente, que en este caso es el que vimos anteriormente.

El segundo argumento son opciones entre ellas los datos, como dijimos que se recibe una cadena le pasamos justamente eso usando las backticks.

See the gist on github.

Después nos suscribimos al cierre del diálogo; se nos pasará un booleano (si no sabes de dónde viene revisa el componente del diálogo) y con él podemos hacer cualquier cosa.

Ahora basta con llamar el método que muestra el diálogo, así:

See the gist on github.

Con el siguiente resultado:

Mostrando un diálogo estilo material design usando Angular

Conclusión

Accede al ejemplo en este enlace, y aquí al código fuente en GitHub.

¿Más tutoriales de Angular? click aquí.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Imprimir HTML con impresora térmica

En este post te enseñaré a imprimir HTML en una impresora térmica. Vas a ser…

13 horas hace

Monitorear cola de impresión en Windows

En este artículo te voy a enseñar a monitorear la cola de impresión de una…

3 días hace

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

1 semana hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

1 semana hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

1 semana hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

1 semana hace

Esta web usa cookies.