2016-07-20 26 views
0

我正试图将spinners改装到我的应用程序中。角度异步操作成功,失败,终于

我期待以设置当我开始异步事件负荷=真变量,并将其设置当调用返回。

然后在我看来,我可以做

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

我在这里看到的是一个如果声明,随后逗号,随后功能

呃......是某种形式的try/catch我以前没有遇到过?

我不能只是添加终于结束...

的原因,我问的问题在这里是因为我甚至不知道如何研究这一点。

最后我想回答的问题是:我可以用什么样的形式异步调用的,让我有一个地方第一激活微调,然后停用呢?

回答

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