Ионный всплывающий «зависает» при открытии

#javascript #html #ionic-framework #ionic-popover

#javascript #HTML #ionic-framework #ionic-всплывающее окно

Вопрос:

У меня есть очень простой ионный всплывающий код, который выглядит следующим образом:

html (main-view.html )

 <div>
    <a href="" ng-click="openPopover()">Open Popup</a>
</div>
  

html (my-view.html )

 <ion-popover-view>
    <ion-content>
        <div class="row">
            <div class="col col-90"><h4>{{ 'Test header' }}</h4></div>
            <div class="col col-10">
                <i class="ion-close" ng-click="closePopover()"></i>
            </div>          
        </div>
        <div class="row">
            <div class="col col-100">
                <p>
                    {{ 'Some content here' }}
                </p>
            </div>
        </div>
    </ion-content>
</ion-popover-view>
  

контроллер

 angular.module('myApp').controller('MainCtrl', function($scope, $rootScope, $ionicPopover){
            $ionicPopover.fromTemplateUrl('views/my-view.html', {
                scope: $scope,
                "backdropClickToClose": false
            }).then(function(popover) {
                $scope.popover = popover;
            });

            $scope.openPopover = function($event){
                $scope.popover.show($event);                 
            };

            $scope.closePopover = function() {
                $scope.popover.hide();        
            };
};
  

Проблема здесь в том, что всякий раз, когда я запускаю ionic serve код, он работает нормально, но когда я нажимаю обновление, а сервер ionic все еще запущен, и снова открываю всплывающее окно, closePopover() оно вообще не работает. Даже если я добавлю в него HTML-ссылку, чтобы открыть другой веб-сайт, это не сработает.

Если я закрою сервер ionic, а затем снова открою его, он снова будет работать, пока я обновляю страницу.

В чем может быть проблема?

Я проверил ion-close прослушиватель щелчков компонентов, и все кажется нормальным. Я пытался воссоздать $ionicPopover экземпляр всякий раз, когда пользователь открывает всплывающее окно, но ничего не работает.

Любая помощь приветствуется.

Ответ №1:

После долгой проверки и тестирования я обнаружил, что проблема заключалась в <ion-popover-view> компоненте, который полностью нарушал логику. Похоже, в этом компоненте есть ошибка, и я уже открыл тикет в Github Ionic Framework, чтобы исправить ошибку. Проблема находится здесь. Проблема с зависанием всплывающего окна Ionic Framework

Ответ №2:

Попробуйте это

    <ion-popover-view>
    <ion-content>
     <div class="row">
        <div class="col col-90"><h4>{{ 'Test header' }}</h4></div>
        <div class="col col-10">
            <i class="ion-close" ng-click="popover.hide();"></i>
        </div>          
    </div>
    <div class="row">
        <div class="col col-100">
            <p>
                {{ 'Some content here' }}
            </p>
        </div>
    </div>
   </ion-content>
  </ion-popover-view>
  

Комментарии:

1. Этот код имеет точно такой же эффект, о котором я говорил выше. Не помогает.

2. Я протестировал тот же мой код в новом проекте, и, казалось, он работал нормально, но всякий раз, когда я обновляю его снова, на этот раз стили css становятся настолько запутанными, что даже угловые функции не работают (это похоже на то, что привязки функции были устранены между компонентом dom и угловой функцией). Я начинаю думать, что это ошибка ionic framework.