web-dev-qa-db-de.com

so schließen Sie den Sweet Alert bei Abschluss der Ajax-Anforderung

Ich verwende Sweet-alert in meiner Winkel-App.

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 (Hauptziel meines Beitrags)

Was ich suche, ist, wenn die Ajax-Anfrage abgeschlossen ist, d. H., Steuerelemente in das then () eingegeben, sollte der Sweet-Alarm automatisch ausgeblendet werden.

Anforderungsnr. 2 Auch während der Anforderungsverarbeitung möchte ich nicht, dass die Popup-Schaltfläche "Schließen" (Schaltfläche "Ok") in der Warnmeldung angezeigt wird.

 enter image description here Wie in der Dokumentation beschrieben, sollte showConfirmButton: false es verstecken, aber nicht.

Jede Hilfe/Anregung wird sehr geschätzt. 
Vielen Dank.

7
Kgn-web

Damit das Popup automatisch ausgeblendet wird, sollten Sie das ursprüngliche Popup auf eine Variable setzen, damit Sie später darauf zugreifen können. Könnte sein:

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);
    }

}

Es ist richtig: https://t4t5.github.io/sweetalert/ im Methodenbereich am unteren Rand.

Da Sie keinen bestimmten "Weg" haben, um die Schaltfläche "OK" auszublenden, und Sie nur nach Vorschlägen suchen, können Sie immer ein wenig CSS verwenden, um darauf zu zielen und ihm das alte display: none;-Setup zu geben.

15
Relic

SweetAlert hat eine Close-Methode, wenn Sie die Dokumente unter http://t4t5.github.io/sweetalert/

Sie können SweetAlert.close() verwenden, um den Sweetalert in eckig zu schließen.

4
erdimeola

Sie können die close-Methode über das süße Objekt verwenden, siehe die Dokumentation im unteren Teil 

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

swal.close (); -> Schließen Sie den aktuell geöffneten SweetAlert programmgesteuert.

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

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

wenn Sie die AngularJS-Bibliothek verwenden, die als "Winkel-Sweetalert" bezeichnet wird, verwenden Sie swal.close (). Zum Schließen des Benachrichtigungsfensters . angle-sweetalert ist ein Wrapper für das Paket der süßen Sweetalert-Bibliothek.

2
user1419261

swal funktioniert nicht mit der sync-Funktion (zB get), Sie müssen get async aufrufen 

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