Estoy tratando de encontrar algunos ejemplos sobre cómo hacer un diálogo modal de Confirmación en Angular 2.0. He estado usando el diálogo Bootstrap para Angular 1.0 y no pude encontrar ningún ejemplo en la web para Angular 2.0. También revisé documentos angulares 2.0 sin suerte.
¿Hay alguna manera de usar el cuadro de diálogo Bootstrap con Angular 2.0?
modal-dialog
angular
user636525
fuente
fuente
Respuestas:
``
Para mostrar el fondo , necesitará algo como este CSS:
El ejemplo ahora permite múltiples modales al mismo tiempo . (ver el
onContainerClicked()
método).Para los usuarios de Bootstrap 4 css , debe realizar 1 cambio menor (porque se actualizó un nombre de clase css desde Bootstrap 3). Esta línea:
[ngClass]="{'in': visibleAnimate}"
debe cambiarse a:[ngClass]="{'show': visibleAnimate}"
Para demostrar, aquí hay un plunkr
fuente
div.modal-footer
y cambiando el.app-modal-footer
para.modal-footer
arreglar esto.Aquí hay un ejemplo bastante decente de cómo puede usar el modo Bootstrap dentro de una aplicación Angular2 en GitHub .
La esencia de esto es que puede envolver el arranque html y la inicialización de jquery en un componente. He creado un
modal
componente reutilizable que le permite activar una apertura utilizando una variable de plantilla.Solo necesita instalar el paquete npm y registrar el módulo modal en el módulo de su aplicación:
fuente
Este es un enfoque simple que no depende de jquery ni de ninguna otra biblioteca, excepto Angular 2. El componente a continuación (errorMessage.ts) se puede usar como una vista secundaria de cualquier otro componente. Es simplemente un modo de arranque que siempre está abierto o se muestra. Su visibilidad se rige por la declaración ngIf.
errorMessage.ts
errorMessage.html
Este es un ejemplo de control principal (se ha omitido un código no relevante por brevedad):
parent.ts
parent.html
fuente
class="modal fade show in danger"
Ahora disponible como paquete NPM
angular-personalizado-modal
@Stephen Paul continuación ...
ngOnDestroy
(ed) cuando se sale del modal.Inicialización de contenido diferido
¿Por qué?
En algunos casos, es posible que no desee modal para mantener su estado después de haber sido cerrado, sino más bien restaurado al estado inicial.
Problema modal original
Pasar el contenido directamente a la vista en realidad genera lo inicializa incluso antes de que el modal lo obtenga. El modal no tiene una forma de eliminar dicho contenido incluso si se usa un
*ngIf
contenedor.Solución
ng-template
.ng-template
no se procesa hasta que se le ordena hacerlo.my-component.module.ts
my-component.ts
modal.component.ts
modal.component.html
Referencias
Tengo que decir que no hubiera sido posible sin la excelente documentación oficial y comunitaria de la red. Podría ayudar a algunos de ustedes también para comprender mejor cómo
ng-template
,*ngTemplateOutlet
y@ContentChild
el trabajo.https://angular.io/api/common/NgTemplateOutlet
https://blog.angular-university.io/angular-ng-template-ng-container-ngtemplateoutlet/
https://medium.com/claritydesignsystem/ng-content -the-hidden-docs-96a29d70d11b
https://netbasal.com/understanding-viewchildren-contentchildren-and-querylist-in-angular-896b0c689f6e
https://netbasal.com/understanding-viewchildren-contentchildren-and-querylist-in -angular-896b0c689f6e
Solución completa de copiar y pegar
modal.component.html
modal.component.ts
modal.module.ts
fuente
Yo uso ngx-bootstrap para mi proyecto.
Puedes encontrar la demo aquí
El github está aquí.
Cómo utilizar:
Instalar ngx-bootstrap
Importar a su módulo
fuente
Aquí está mi implementación completa del componente modal2 bootstrap angular2:
Supongo que en su archivo index.html principal (con
<html>
y<body>
etiquetas) en la parte inferior de la<body>
etiqueta tiene:modal.component.ts:
modal.html:
Y ejemplo de uso en el componente Editor del cliente: client-edit-component.ts:
client-edit.html:
Por supuesto
title
,showClose
,<mhead>
y<mfoot>
ar parámetros / etiquetas opcionales.fuente
bindModal(modal) {this._modal=modal;}
, puede utilizar angular de laViewChild
anotación, así:@ViewChild('editModal') _modal: Modal;
. Maneja la encuadernación detrás de escena.Verifique el cuadro de diálogo ASUI que crea en tiempo de ejecución. No hay necesidad de esconder y mostrar lógica. Simplemente el servicio creará un componente en tiempo de ejecución usando AOT ASUI NPM
fuente
intente usar ng-window, permite al desarrollador abrir y controlar por completo múltiples ventanas en aplicaciones de una sola página de manera simple, sin Jquery, sin Bootstrap.
Configuración disponible
fuente
Angular 7 + NgBootstrap
Una forma sencilla de abrir modal desde el componente principal y pasar el resultado de nuevo a él. Es lo que quería. Creé un tutorial paso a paso que incluye la creación de un nuevo proyecto desde cero, la instalación de ngbootstrap y la creación de Modal. Puede clonarlo o seguir la guía.
Espero que esto ayude a nuevo en Angular.
https://github.com/wkaczurba/modal-demo
Detalles:
plantilla modal-simple (modal-simple.component.html):
El modal-simple.component.ts:
Demostración de la misma (app.component.html): forma sencilla de tratar el evento de retorno
app.component.ts - onModalClosed se ejecuta una vez que modal se cierra:
Salud
fuente