2017-11-04 3 views
-1

이 코드를 사용 했으므로 00:00에 도달하면 카운트 다운을 중지하고 싶습니다. $interval.cancel();을 사용하고 싶지만 사용 방법을 모르겠습니다.카운트 다운 중지 각도

내 코드는 여기에 있습니다 :

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 언제나 환영합니다. –

관련 문제