Bonjour,

J'ai un problème avec un affichage d'une popup dans une application Ionic et je n'arrive pas à trouver la solution.

J'ai sur une des pages de cette app, un bouton qui déclenche un popup avec un input dans celui-ci qui invite à renseigner le nom de l'utilisateur. Ensuite, une redirection est faite sur une autre page.

Quant je teste mon code avec serve -l , tous est OK, mais quand je run l'app sur mon smartphone, le popup s'ouvre à double. On peut cliquer une fois sur "annuler" et après saisir son nom, tout fonctionne, mais pas terrible pour UX.

Voici mon code :

HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    <fieldset>
        <legend  style="text-align: center;">Connexion</legend>
        <button ng-if="opened" class="button button-block button-positive startSessionBtn" ng-click="showPopup()">Démarrer une session</button>
        <span ng-if="!opened" class="notOpened" style="text-align: center;"> ... <button class="button button-block button-balanced" onClick="history.go(0)">Rafraichir</button></span>
    </fieldset>
Controller.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
$scope.showPopup = function() {
        $scope.data = {};
 
        // An elaborate, custom popup
        var myPopup = $ionicPopup.show({
            template: '<input type="text" ng-model="data.name">',
            title: 'Votre Nom',
            subTitle: 'Merci de Saisire votre nom dans le champ ci-dessous',
            scope: $scope,
            buttons: [
                { text: 'Annuler' },
                {
                    text: '<b>GO</b>',
                    type: 'button-positive',
                    onTap: function(e) {
                        if (!$scope.data.name) {
                            return $scope.data.name;
                        } else {
                            console.log('startSession', $scope.data.name );
                            $state.go('app.contactSession', { name: $scope.data.name } );
                        }
                    }
                }
            ]
        });
 
        myPopup.then(function(res) {
            console.log('Tapped!', res);
        });
 
        $timeout(function() {
            myPopup.close();
        }, 30000);
    };
Merci pour votre aide, salutation, Jérémy