web-dev-qa-db-fra.com

comment fermer une alerte douce à la fin d'une demande ajax

J'utilise Sweet-alert dans mon application angulaire.

function GetDataFromServer(url) {
        SweetAlert.swal(
    {
        title: "",
        text: "Please wait.",
        imageUrl: "../../app/app-img/loading_spinner.gif",
        showConfirmButton: false
    });
        return $http.get(url)
        .then(success)
        .catch(exception);
        function success(response) {
            //SweetAlert.swal(
            //  {
            //      title: "",
            //      text: "data loaded",
            //  });
            return response.data;
        }
        function exception(ex) {
            return (ex);
        }

    }

Req # 1 (objectif principal de mon post)

Ce que je recherche, c’est lorsque la demande ajax se termine, c.-à-d., contrôles entre dans then (), l'alerte douce devrait automatiquement se masquer.

Demande n ° 2 En outre, lors du traitement de la demande, je ne souhaite pas que le bouton contextuel Fermer (bouton OK) apparaisse dans l'alerte douce.

 enter image description here Selon la documentation, showConfirmButton: false devrait le cacher mais ce n’est pas le cas.

Toute aide/suggestion hautement appréciée. 
Merci.

7
Kgn-web

Pour masquer automatiquement la fenêtre contextuelle lorsque vous avez terminé, vous devez définir votre fenêtre contextuelle initiale sur une variable afin de pouvoir y accéder ultérieurement. Peut être:

function GetDataFromServer(url) {
    SweetAlert.swal({
        title: "",
        text: "Please wait.",
        imageUrl: "../../app/app-img/loading_spinner.gif",
        showConfirmButton: false
    });
    return $http.get(url)
    .then(success)
    .catch(exception);
    function success(response) {
        swal.close()
        return response.data;
    }
    function exception(ex) {
        return (ex);
    }

}

C'est juste sur: https://t4t5.github.io/sweetalert/ dans la section méthodes près du bas.

Étant donné que vous ne souhaitez pas masquer le bouton OK de manière spécifique, et que vous recherchez simplement des suggestions, vous pouvez toujours utiliser un peu de CSS pour le cibler et lui donner la configuration précédente display: none;.

15
Relic

SweetAlert a une méthode proche si vous consultez la documentation à http://t4t5.github.io/sweetalert/

Vous pouvez utiliser SweetAlert.close() pour fermer le message sweetalert en mode angulaire.

4
erdimeola

Vous pouvez utiliser la méthode close sur l’objet sweet voir la documentation en bas 

https://t4t5.github.io/sweetalert/

swal.close (); -> Fermez la SweetAlert actuellement ouverte par programme.

self.showProgress = function(message) {
  swal({ title: message });
  swal.showLoading();
};

self.hideProgress = function() {
  swal.close();
};
4
sur97c

si vous utilisez la bibliothèque AngularJS connue sous le nom d'angular-sweetalert, utilisez swal.close (); fermer la fenêtre d'alerte . angular-sweetalert est une enveloppe sur le paquet de base de la bibliothèque sweetalert.

2
user1419261

swal ne fonctionne pas avec la fonction sync (par exemple, get), vous devez faire l'appel get async 

swal({
    type: 'warning',
    text: 'Please wait.',
    showCancelButton: false,
    confirmButtonText: "ok",
    allowOutsideClick: false,
    allowEscapeKey: false
}).then(function (result) {
    if (result) {

        setTimeout(function () {
            $http.get(url)
        }, 500);
    }
});
0
Mario Villanueva