单击设备后,多次创建离子弹出窗口

时间:2017-09-27 13:35:29

标签: cordova ionic-framework ionicpopup

我已经写了一个函数来点击设备后打开离子弹出窗口,问题是我多次点击设备后,弹出多次创建并保留在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 ();
});

我错过了什么吗?

1 个答案:

答案 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);
})