2017-11-04 3 views
-1

私はこのコードを書いたので、カウントダウンが00:00になったら停止したい。私は$interval.cancel();を使用したいが、私はそれを使う方法を知らない。カウントダウンを停止するanglejs

私のコードはここにある:

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope, $interval) { 
 
    $scope.counter = 10; 
 
    $interval(function(){console.log($scope.counter--)},1000); 
 
}); 
 
app.filter('counter', [function() { 
 
    return function(seconds) { 
 
     return new Date(1970, 0, 1).setSeconds(seconds); 
 
    }; 
 
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<p>{{counter | counter | date:'mm:ss'}}</p> 
 
</div>

+0

ドキュメントが存在する理由です:https://docs.angularjs.org/api/ng/service/$interval –

+0

アイブ氏はすでに見たが、それは私には思われるがこれほど少ないのドキュメントを複雑 – salimbenfarhat

+1

ドキュメントを読むのが難しい場合は、プログラマではありません。それは仕事の一部です。あなたの質問は基本的には「私はドキュメンテーションのページを読むのが面倒です。私のコードを書いてください? –

答えて

4

counter != 0のような条件を追加し、間隔をクリアします。

$intervalによれば、間隔をキャンセルするという約束が必要です。

var app = angular.module('myApp', []); 
 
    app.controller('myCtrl', function($scope, $interval) { 
 
     $scope.counter = 10; 
 
     var intervalTime=null; 
 
     intervalTime= $interval(function(){console.log($scope.counter--); 
 
     if($scope.counter == 0){ 
 
       $interval.cancel(intervalTime); 
 
       intervalTime = null; 
 
     } 
 
},1000); 
 
    }); 
 
    app.filter('counter', [function() { 
 
     return function(seconds) { 
 
      return new Date(1970, 0, 1).setSeconds(seconds); 
 
     }; 
 
    }])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<p>{{counter | counter | date:'mm:ss'}}</p> 
 
</div>

+0

ありがとう – salimbenfarhat

+0

@salimbenfarhatいつもようこそ。 –

関連する問題