我已经写了一个函数来点击设备后打开离子弹出窗口,问题是我多次点击设备后,弹出多次创建并保留在DOM中。如何关闭上一个弹出窗口并再次创建一个新弹出窗口?
App Exit Popup:
$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 ();
});
我错过了什么吗?
答案 0 :(得分:0)
希望以下功能可以帮到你。按下按钮时设置标志&如果flag为false则检查标志,不需要再次显示对话框。如果用户按取消,则再次更改标志值。
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);
})