Bonjour, je souhaite faire une fenetre modal qui s'affiche pendant une requête AJAX.

Ce que je fais

Mon fichier JS:

app.controller('RegisterController',function($scope,$uibModal,$http, $httpParamSerializerJQLike) {
    $scope.submit = function() {

        $param = $httpParamSerializerJQLike({
            "login": $scope.id,
            "password": $scope.hei_id
        });

        $uibModal.open({
            templateUrl: 'RegisterModal.html',
            controller: 'RegisterModalController',
            backdrop: 'static',
            resolve: {
                promise: function () {
                    return $http.post('/api/register', $param,{
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded'
                        }
                    })
                }
            }
        });
    };
});

app.controller('RegisterModalController',function($scope, $uibModalInstance) {
    $scope.requestFinished = false;
    $scope.requestSuccess = false;
    $scope.errorString = false;

    $scope.promise.then(function(response){
        $scope.requestSuccess = false;
        console.log(response);

    }, function(response){
        console.log(response);
    }).finally(function () {
        $scope.requestFinished = true;
    });

    $scope.goToLogin = function () {
        window.location = "/login";
    };

    $scope.close = function () {
        $uibModalInstance.close();
    };

});

Ce que je veux

Je voudrais que la fenêtre modal s'affiche en début de la requête.

Ce que j'obtiens

La requête se lance mais la modal ne s'affiche pas. Alors que si je ne lance pas la requête, la fenêtre s'affiche

merci

1 réponse


Salut,

La modale servirait à quoi ?
Il suffit de faire appel à la modal en question au début de ta fonction $scope.submit().