2017-09-26 12 views
1

条件が真である場合、時間間隔の後に実行される操作があります。この期間内$scope.goToNextPage変更は、私が実行されてからこれを停止する必要がある場合、私は、しかし、この条件が変更された場合、setTimeoutで操作をキャンセルします。

if($scope.goToNextPage==true){ 
    setTimeout(() => { 
     $scope.location.path('nextPage'); 
    },4000)  
} 

のようなものをやっています。私はこれを達成できる方法はありますか?それは停止が実行されたとき

答えて

0

あなたはまた

if ($scope.goToNextPage) { 
    setTimeout(() => { 
     if (!$scope.goToNextPage) { 
      return false; 
     } 
     $scope.location.path('nextPage'); 
    }, 4000) 
} 

==に確認する必要はありませんように、そのステートメントを実行する前に、他の条件は、あなたが直接変数を追加することができます。次に、次のように再度確認してください。

if($scope.goToNextPage==true){ 
    setTimeout(() => { 
     if($scope.goToNextPage){ 
      $scope.location.path('nextPage'); 
     } 
    },4000)  
} 
0

変更にfalseにgoToNextPageブール値であるとして

0

サービスをangularjsで使用してください。 $ timeout.cancelメソッドで取り消すことができる約束を返します。 Ref

関連する問題