2015-02-05 4 views
6

Есть ли какие-либо события, которые срабатывают при закрытии всплывающего окна.ngDialog - closeModal event - angularjs

Модаль открывается при щелчке. У модального есть кнопка закрытия, но также закрывается, когда пользователь щелкает где-нибудь вне модального div.

Хотелось бы выполнять некоторые действия, когда всплывающее окно закрывается. Я знаю, как написать функцию при нажатии этой кнопки закрытия, но что делать, если модал закрывается каким-то другим действием.

app.controller('MainCtrl', function ($scope, ngDialog) { 
$scope.clickToOpen = function() { 
ngDialog.open({ template: 'popupTmpl.html' }); 
}; 
}); 

ответ

12

Попробуйте прохождение 'preCloseCallback': -

ngDialog.open({ template: 'popupTmpl.html', preCloseCallback:function(){ /* Do something here*/} }); 

Надеется, что это помогает!

+0

Это круто. Благодарю. – Cody

+0

Спасибо @Cody. Приятно было знать, что это помогло! – amitthk

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

Точный ответ. Просто используйте backdrop : 'static', и ваш модальный экран будет закрыт, нажав кнопку закрытия. И да, это был большой вопрос. Многие разработчики делают такую ​​глупую ошибку, но вы не от них. Если это не поможет, позвольте мне ответить. Есть много способов сделать это.

+1

Спасибо. Я попробовал фолд, но модальный все еще закрывается при нажатии на него вне его. – Qwerty

+4

ngDialog.open ({template: 'popupTmpl.html', closeByDocument: false, preCloseCallback: function() {/ * Сделать что-то здесь * /}}); Сделайте это и дайте мне знать, что это работает или нет. Мой скайп: er.chourasiya – rahul

+0

Да это сработало .. – Qwerty

1

Просто поместите closeByDocument: false внутри dialog.open, чтобы диалоговое окно не закрывалось, когда пользователь щелкает в любом месте вне модального div.

Пример кода

ngDialog.open({ 
    id: 'fromAService', 
    template: 'firstDialogId', 
    controller: 'InsideCtrl', 
    data: { foo: 'from a service' }, 
    closeByDocument: false 
}); 
Смежные вопросы