停止倒计时 angularjs
Stop countdown angularjs
我有这个代码,我想在倒计时到达 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>
添加类似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>
我有这个代码,我想在倒计时到达 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>
添加类似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>