2016-07-20 57 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