ionic + cordovaでionicPopupを使ってポップアップを実装したとき、1つ目のポップアップを閉じてすぐに2つ目のポップアップを開くとフォーカスがおかしくなる。
function a() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', } ] }); } function b() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', onTap: function(e) { popup.close(); a(); } } } ] }); } b();
問題はpopup.close()と次のポップアップのレースコンディションのよう。
次のようにtimeoutを十分にとればほぼうまくいく。
function a() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', } ] }); } function b() { var popup = $ionicPopup.show({ title: 'title', scope: $scope, buttons: [ { text: 'OK', onTap: function(e) { popup.close(); $timeout(function () { a(); }, 250); } } } ] }); } b();