0

我在一个特定的控制器中定义了一个 $ionicPopup,比如 Controller-1。当我通过将状态更改为 $state.go('xxx.xx.xx') 从任何其他不同的 Controller-X 移动到 Controller-1 时,$ionicPopup 无法按预期工作。但同时,如果我第一次打开 Controller-1,$ionicPopup 工作正常。状态变化导致问题。如何解决?

Controller-1 中 $ionicPopup 的代码是:

$ionicPopup.show({
title: "Delivery Not Available",
subTitle: 'Selected area is beyond our delivering area. You can place only Take Away orders.',
scope: $scope,
buttons: [{
        text: 'Cancel',
        onTap: function(e) {
            return true;
        }
    },
    {
        text: '<b>OK</b>',
        type: 'button-balanced',
        onTap: function(e) {
            $state.go('home.app');
        }
    },
]});

如果我第一次直接从 Controller-1 启动它,它会按预期工作: 屏幕截图 - 正常情况

但是,如果我通过使用 $state.go('xxx.xx.x') 的状态更改从任何其他状态移动到 Controller-1,它会显示损坏的输出: 屏幕截图 - 失败案例

4

1 回答 1

1

为您的弹出窗口创建一个这样的函数并在您的成功回调函数中调用该函数,并确保您在编写成功回调的同一控制器中有此代码

$scope.showConfirm = function() {

      var confirmPopup = $ionicPopup.confirm({
         title: 'Title',
         template: 'Are you sure?'
      });

      confirmPopup.then(function(res) {
         if(res) {
            console.log('Sure!');
         } else {
            console.log('Not sure!');
         }
      });

   };

有关Ionic Popup的更多详细信息,请参阅此链接

于 2018-01-20T10:10:57.707 回答