working que page not cloak change angularjs angular-ui angularjs-service

angularjs - page - ¿Cómo evito que el modo angular ui se cierre?



page title angular 4 (6)

Configurar globalmente,

decorator , una de las mejores características en angular. da la capacidad de "parchear" módulos de terceros.

Supongamos que desea este comportamiento en todas sus referencias de $modal y no desea cambiar sus llamadas.

Puedes escribir un decorador . eso simplemente agrega opciones - {backdrop:''static'', keyboard:false}

angular.module(''ui.bootstrap'').config(function ($provide) { $provide.decorator(''$modal'', function ($delegate) { var open = $delegate.open; $delegate.open = function (options) { options = angular.extend(options || {}, { backdrop: ''static'', keyboard: false }); return open(options); }; return $delegate; }) });

  • Nota: en las últimas versiones, $modal rebautizado como $uibModal

Demostración en línea - http://plnkr.co/edit/2MWIpOs3uAG5EFQy6Ndn?p=preview

Estoy usando Angular UI $ modal en mi proyecto http://angular-ui.github.io/bootstrap/#/modal

No quiero que el usuario cierre el modal presionando telón de fondo. Quiero que un modal solo se cierre presionando el botón de cerrar que he creado.

¿Cómo evito que cierre modal?


Esto es lo que se menciona en la documentación

telón de fondo: controla la presencia de un fondo. Valores permitidos: verdadero (predeterminado), falso (sin fondo), ''estático'': el fondo está presente pero la ventana modal no se cierra al hacer clic fuera de la ventana modal.

static puede funcionar


Mientras crea su modal, puede especificar su comportamiento:

$modal.open({ // ... other options backdrop : ''static'', keyboard : false });


Pregunta anterior, pero si desea agregar cuadros de diálogo de confirmación en varias acciones cercanas, agregue esto a su controlador de instancia modal:

$scope.$on(''modal.closing'', function(event, reason, closed) { console.log(''modal.closing: '' + (closed ? ''close'' : ''dismiss'') + ''('' + reason + '')''); var message = "You are about to leave the edit view. Uncaught reason. Are you sure?"; switch (reason){ // clicked outside case "backdrop click": message = "Any changes will be lost, are you sure?"; break; // cancel button case "cancel": message = "Any changes will be lost, are you sure?"; break; // escape key case "escape key press": message = "Any changes will be lost, are you sure?"; break; } if (!confirm(message)) { event.preventDefault(); } });

Tengo un botón de cierre en la parte superior derecha de la mía, que desencadena la acción "cancelar". Al hacer clic en el fondo (si está habilitado), se activa la acción de cancelar. Puede usar eso para usar diferentes mensajes para varios eventos cercanos.


para la nueva versión de ngDialog (0.5.6), use:

closeByEscape : false closeByDocument : false


backdrop : ''static''

Funcionará para eventos de "clic" pero aún puede usar la tecla "Esc" para cerrar la ventana emergente.

keyboard :false

para evitar que la ventana emergente se cierre con la tecla "Esc".

Gracias a pkozlowski.opensource por la respuesta.

Creo que la pregunta es un duplicado de UI Bootstrap Modal angular - cómo prevenir la interacción del usuario