Ионное всплывающее окно создается несколько раз при нажатии устройства назад
Я написал функцию для открытия ионного всплывающего окна при щелчке устройства назад, проблема в том, что как только я нажимаю на устройство несколько раз, всплывающее окно создается столько раз и остается в DOM. Как я могу закрыть предыдущее всплывающее окно и создать новое снова?
Всплывающее окно выхода из приложения:
$rootScope.exitApp = function () {
exitpopup = $ionicPopup.show({
templateUrl: 'templates/exitApp1.html'
});
exitpopup.then(function (res) {
console.log(res);
});
return false;
};
Функция RegisterBack:
$ionicPlatform.registerBackButtonAction(function (e) {
// lots of code
if ($ionicHistory.backView())
$rootScope.exitApp ();
});
Я что-то пропустил?
1 ответ
Надеюсь, что ниже функция поможет вам. Установите флаг, когда кнопка "Назад" нажимает и проверяет флаг, если флаг имеет значение "Ложь", нет необходимости показывать диалог снова. если пользователь нажал "Отмена", измените значение флага еще раз.
app.run(function($ionicPlatform,$rootScope,$ionicPopup)
{
$rootScope.is_dialog_in_screen = false;
$ionicPlatform.ready(function()
{
if(window.cordova && window.cordova.plugins.Keyboard)
{
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if(window.StatusBar)
{
StatusBar.styleDefault();
}
});
$ionicPlatform.registerBackButtonAction(function (event)
{
event.preventDefault();
if($rootScope.is_dialog_in_screen==false)
{
var confirmPopup = $ionicPopup.confirm({
title: 'Quit.?',
template: 'Really want to exit?',
cancelText: 'cancel',
okText: 'ok'
})
.then(function(res)
{
if (res)
{
alert("Exit app logic goes here");
}
else
{
$rootScope.is_dialog_in_screen = false;
}
});
$rootScope.is_dialog_in_screen = true;
}
}, 999);
})