Ionic 1 - всплывающее окно не работает должным образом после изменения состояния

У меня есть $ionicPopup, определенный внутри определенного контроллера, скажем, Controller-1. Когда я перехожу к Controller-1 с любого другого контроллера-X, изменяя состояние как $state.go('xxx.xx.xx'), $ionicPopup не работает должным образом. Но в то же время, если я открываю Controller-1 в первый раз, $ionicPopup работает нормально. Изменение состояния вызывает проблему. Как это решить?

Код $ionicPopup внутри Controller-1:

$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, он работает так, как ожидалось: Снимок экрана — обычный Дело

Но если я перейду к Controller-1 из любого другого состояния посредством изменения состояния с помощью $state.go('xxx.xx.x'), он покажет неверный вывод: Скриншот – Ошибка


person Abhijith C S    schedule 20.01.2018    source источник
comment
Как вы вызываете всплывающее окно? Вы написали этот код при нажатии кнопки или что-то в этом роде?   -  person MSD    schedule 20.01.2018
comment
Неа. Он будет вызываться при успешном обратном вызове после HTTP-запроса.   -  person Abhijith C S    schedule 20.01.2018


Ответы (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.

person MSD    schedule 20.01.2018
comment
Это сработало. Спасибо @MSD :) Я использовал $ionicPopup.show(), и это не помогло. Переключение на $ionicPopup.confirm() сработало. - person Abhijith C S; 21.01.2018