У меня есть $modalInstance
. Я могу получить уведомление о событии с помощью обещаний:
$modalInstance.result.finally(function() {
// code here
});
Но я не знаю, как предотвратить закрытие, если пользователь закрывает модель по ошибке. Я хочу спросить пользователя, действительно ли кто-то хочет закрыть модель и закрыть ее, если он это сделает. Тем не менее, я не хочу включать backdrop: 'static'
:
$modal.open({
... // other options
backdrop : 'static'
});
Спасибо.
Я сделал еще несколько исследований, и я нашел другой вопрос, похожий на этот, это ответ, найденный по этому вопросу (не стесняйтесь +1, а не меня)
$scope.$on('modal.closing', function(event, reason, closed) {
var r = prompt("Are you sure you wanna close the modal? (Enter 'YES' to close)");
if (r !== 'YES') {
event.preventDefault();
}
});
Поместите это внутри модального контроллера.
Это не совсем то, что вы искали, это подскажет вам, если вы попытаетесь закрыть модальный, отклонив (нажав внешний модальный), отменив или ок. Вы можете попробовать и изменить его в соответствии с вашими потребностями.
Обновление: добавлена простая проверка, if else
вы хотите проверить, что было нажато, и если щелкнул фоновый экран, попросите пользователя:
$scope.$on('modal.closing', function(event, reason, closed) {
if (reason == 'ok' || reason == 'cancel'){
console.log('closed');
} else {
// this is if 'reason' == 'backdrop click'
var r = prompt("Are you sure you wanna close the modal? (Enter 'YES' to close)");
if (r !== 'YES') {
event.preventDefault();
}
}
});
Считаете ли вы, что этого решения достаточно?