Вызов функции обратного вызова по esc в модальном режиме Angular UI Bootstrap

Я использую модальное окно Angular UI Bootstrap, которое можно закрыть с помощью кнопки «Отмена» или с помощью ESC. Поскольку мне нужно выполнить некоторую очистку, когда он закрывается, я написал метод «отмена» в области видимости, но он вызывается только при нажатии этой кнопки «Отмена», как я могу вызвать эти функции очистки, когда он также закрывается на ESC ?


person farolfo    schedule 12.02.2014    source источник


Ответы (2)


Когда модальное окно закрывается (нажатием ESC или нажатием на фон), обещание, возвращаемое вызовом метода $modal.open, отклоняется. Таким образом, вы можете реагировать на нажатие ESC, добавляя обработчик ошибок к возвращаемому обещанию. Это показано в примере, доступном на демонстрационной странице: http://plnkr.co/edit/xMTr78WJQbKyHsA53gyv?p=preview (см. эту строку: $log.info('Modal dismissed at: ' + new Date());)

person pkozlowski.opensource    schedule 13.02.2014
comment
можно ли получить доступ к информации в модальной области, когда вызывается отклонение? - person Dvid Silva; 10.09.2014

спасибо @pkozlowski.opensource

Я прямо знал, что делать :)

var modalWindow = $modal.open({
    windowClass: 'modal myKewlDialog',
    templateUrl: 'views/modals/myKewlModalTemplate.html',
    controller: 'myKewlModalController'
});

modalWindow.result.then(function (result) {
    updateUI();
}, function (result) {
    updateUI();
});
person Guntram    schedule 03.04.2014
comment
если U запускает одну и ту же функцию для закрытия и закрытия модального окна, я бы предложил использовать ['finally'](function(){....}) вместо дублирующихся триггеров;) - person Ghashange; 24.07.2015
comment
хорошая точка зрения! я больше не знаю, действительно ли я вызывал updateUI-fn в обоих случаях... - person Guntram; 28.07.2015