私のコードでは、ボタンのタップ時に ionicPopup をトリガーすると、別の ionicPopup がトリガーされますが、前の ionicPopup を閉じる必要があります。ただし、私の実装では、最終的な ionicPopup を閉じますが、最初の ionicPopup は閉じず、アプリをフリーズさせます。すべての ionicPopup が閉じていることを確認する方法はありますか、少なくともボタンのタップ時に各 ionicpopup を閉じる方法はありますか。これは私のコードのコードペンですhttp://codepen.io/anon/pen/dYVdJv
$scope.showPopup = function() {
$scope.data = {}
$ionicPopup.show({
title: ' Session Terminated!',
scope: $scope,
template:' You are currently logged into another device/browser. Pls log out from your other device/browser!',
buttons: [
{ text: '<h6 style="text-transform: capitalize;">Cancel</h6>',
type: 'button-positive'
},
{
text: '<h6 style="text-transform: capitalize;">Verify Me</h6>',
type: 'button-positive',
onTap: function(e) {
$scope.verifyMe();
}
}
]
}).then(function(res) {
console.log('Tapped!', res);
}, function(err) {
console.log('Err:', err);
}, function(popup) {
console.log('Got popup', popup);
$timeout(function() {
popup.close();
}, 1000);
});
};
$scope.verifyMe = function() {
$ionicPopup.show({
title: ' Enter Username',
scope: $scope,
template:'<input type="text" ng-model="user.username">',
buttons: [
{
text: '<h5 style="text-transform: capitalize;">Verify Me</h5>',
type: 'button-positive',
onTap: function(e) {
$scope.verifyNow('first.app');
}
}
]
}).then(function(res) {
console.log('Tapped!', res);
}, function(err) {
console.log('Err:', err);
}, function(popup) {
console.log('Got popup', popup);
$timeout(function() {
popup.close();
}, 1000);
});
};
$scope.verifyNow = function(username) {
console.log("verified and removed" + username)
}
コードの実行が完了したら、コードをチェックするとこれが得られます
<div class="popup-container popup-showing popup-hidden" ng-class="cssClass">
//more code here
</div>
これは実際には最初の ionicPopup.show({}) で開かれたポップアップであり、2 番目の ionicPopup.show({}) は閉じられます。最初のものが閉じずに非表示になる理由がわかりません。