如何在ajax请求完成时关闭甜蜜警报

Kgn*_*web 8 javascript ajax jquery angularjs sweetalert

我正在使用Sweet-alert我的角度应用程序.

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

    }
Run Code Online (Sandbox Code Playgroud)

需求#1(我这篇文章的主要目的)

我正在寻找的是当ajax请求完成时,即控件进入then(),Sweet警报应该自动隐藏.

Req#2同样在请求处理时,我不希望在甜蜜警报中有关闭弹出按钮(确定按钮).

在此输入图像描述 根据文档,showConfirmButton: false应该隐藏它,但事实并非如此.

任何帮助/建议高度赞赏.
谢谢.

小智 20

您可以通过在您想要的任何位置使用以下代码行来关闭当前显示的 Sweetalert。

swal.close();
Run Code Online (Sandbox Code Playgroud)

就是这样!


Eri*_*sky 18

要在弹出结束时自动隐藏弹出窗口,您应该将初始弹出窗口设置为变量,以便稍后访问它.也许:

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

}
Run Code Online (Sandbox Code Playgroud)

它是正确的:https://t4t5.github.io/sweetalert/在底部附近的方法部分.

由于你没有特定的"方式",你想要隐藏确定按钮而你只是在寻找建议,你总是可以使用一点CSS来定位它并给它display: none;设置ol .


小智 5

您可以对最甜的对象使用close方法,请参见下面的文档

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

swal.close(); ->以编程方式关闭当前打开的SweetAlert。

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

self.hideProgress = function() {
  swal.close();
};
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您使用 swal2,您可以Swal.close()从代码中的任何位置使用它来关闭它,以便在 ajax 完成时关闭它,我认为下面的代码是一种简单的方法:

$(document).ajaxComplete(function () {
        Swal.close();
});
Run Code Online (Sandbox Code Playgroud)