2016-07-20 45 views
0

私のアプリにスピナーを改造しようとしています。角度非同期操作成功、失敗、最終的に

私は非同期イベントを開始ロード=真変数を設定し、それコールリターンを設定することを期待しています。

は、次に私の見解で、私は、フォーム成功、失敗、ついにの非同期呼び出しを見つけることを期待していた

<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文、です。

Uhh ...私が以前に遭遇したことがないtry/catchの形式ですか?

私はちょうど私もこれを研究する方法を知らないので、私はここに質問を求めている理由は...最後にようやく

を追加することはできません。

は最終的に私が答えることをしようとしている質問は、非同期呼び出しのどのような形私が最初に アクティブに場所スピナーを持っているので、使用することができ、その後、 それを無効に?

答えて

0

ああ。 OK。これは標準的な約束です。ちょうど混乱してフォーマットされています。私はそれを見落とした。それは同じ行にある。

$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

関連する問題