2017-09-27 14 views
0

イオンポップアップをデバイスのクリックで開く機能を作成しました。デバイスを複数回クリックするとすぐにポップアップが何度も作成されて残ります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(); 
}); 

私は何かが足りないのですか?

答えて

0

下記の機能が役立ちます。戻るボタンが押されたときにフラグを設定します。&フラグが偽であるかどうかをチェックします。ダイアログを再度表示する必要はありません。ユーザーがcancelを押すとフラグ値が再び変更されます。

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); 
}) 
+0

ありがとう、私はこれを試します。しかし、2つのポップアップを書くポイントは何ですか?ポップアップ(Exitapp)し、登録機能の中でポップアップを確認する? –

+0

あなたはexit関数を無視することができます –

関連する問題