角度异步操作成功,失败,最后

时间:2016-07-20 18:08:39

标签: angularjs ajax

我正在尝试将微调器改造成我的应用程序。

我希望在启动异步事件时设置 loading = true 变量,并在调用返回时将其设置为 false

然后在我看来我可以做

<span><i class="fa fa-spinner" if-show="vm.loading"></i><span>

我希望找到成功,失败,最后形式的异步调用。

我打开的第一个控制器以我不理解的形式拨打电话。我甚至不知道该怎么称呼它,所以我不知道如何研究和探索它。

    $scope.login = function () {
        if ($scope.form.$valid) {
            authService.login($scope.loginData).then(function (response) {
            $location.path("/dashboard");
        },
            function (err) {
                toastr.error(err.error_description);
            });
        }
    };

我在这里看到的是 if 语句,后跟逗号,后跟函数

呃......我之前没有遇到某种形式的尝试/捕获吗?

我不能只是在最后添加一个......

我在这里提出问题的原因是因为我甚至不知道如何研究这个问题。

最终我要回答的问题是:我可以使用什么形式的异步调用,以便我有一个地方首先激活微调器,然后停用它?

1 个答案:

答案 0 :(得分:0)

阿。好。这是一个标准的承诺 - 只是容易混淆格式化。我忽略了那条在同一条线上的。

$scope.login = function () {
    if ($scope.form.$valid) {
        $scope.loading = true;
        authService.login($scope.loginData)
            .then(function (response) {
                 $location.path("/dashboard");
             },
             function (err) {
                 toastr.error(err.error_description);
             })
             .finally(function(){
                 $scope.loading = false;
             }
       );
    }
}

在这里找到它:

How to always run some code when a promise is fulfilled in Angular.js