2015-03-11 3 views
1

Мы используем ngDialog для открытия модального окна. Хотя будет много ссылок на открытые модальности, нам нужно только одно открытое за раз. Есть ли способ сделать это, используя параметры ngDialog?Можно ли ограничить ngDialog, чтобы разрешить только один открытый модальный?

Диалог может занять несколько секунд, а между тем пользователи могут нажать на вторую ссылку.

+0

что вы можете сделать, это закрыть предыдущий, прежде чем открывать другой ... – harishr

+0

Спасибо за предложение. Я добавил ngDialog.closeAll(); прежде чем он действительно откроет. Это не работает, если вы нажимаете на несколько ссылок в более или менее одинаковое время. Я новичок в угловатом, поэтому, возможно, я делаю это неправильно. – Rachel

ответ

0

Функция открытия ngDialog возвращает объект, содержащий идентификатор открытого диалога. Вы можете сохранить последний открытый идентификатор диалогового окна и использовать его для проверки того, что диалог не открывается, прежде чем открывать новый.

выглядит так:

var dialog = {}; 
function openDialog(){ 
    if(!ngDialog.isOpen(dialog.id)){ 
     dialog = ngDialog.open({ 
     template: 'views/dialog.html', 
     controller: 'someCtrl', 
     scope: scope 
     }); 
    } 
}; 

Кроме того, если вы хотели бы сделать это поведение по умолчанию один для ngDialog, я предлагаю читать о decorators.