【发布时间】:2014-03-12 23:12:11
【问题描述】:
所以我在 AngularJS 中创建了一个简单的倒计时函数,这意味着倒计时到输入中设置的时间。问题是我无法循环 $scope.countdown 函数。所以它只会倒计时一次(如果我把 $timeout($scope.countdown(), 1000); 放进去 - 它会完全中断。)我只希望它每秒循环一次,直到它达到 0。
这是我的控制器:
function countdownController($scope) {
$scope.hours = 2;
$scope.minutes = 30;
$scope.countdown = function(){
if($scope.minutes == 0 && $scope.hours == 0){
alert('end!');
return;
}
else{
if($scope.minutes == 0){
$scope.minutes = 59;
$scope.hours--;
}
else{
$scope.minutes--;
}
}
$timeout($scope.countdown(), 1000); //if I remove this - the numbers display - this actually breaks that.
}
$scope.countdown();
}
【问题讨论】:
-
我想你想传递函数而不是执行函数 $timeout($scope.countdown, 1000);
-
@MattPileggi 你能告诉我把它放在应用程序的什么地方吗?我认为这就是我所缺少的。谢谢!
-
你有它在那里你放评论删除它。只需更改该行,使其不调用 $scope.countdown 而是将其作为对象传递。
-
@MattPileggi 我对语法以及如何将其作为对象传递感到困惑。我这样说吗?
$timeout(1000){$scope.countdown()};我确定那是错误的,但会向您展示我迷路的地方。谢谢!